X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FLolCatalyst%2FLite%2FTranslator.pm;h=7dd978e54022a5ec835649c28f7540e623c2ad02;hb=63ed6b503b569a6b146f746ebf8fde02488b2edf;hp=3aeb7de279249ec05a5bd5203abe5270e6a0ee4e;hpb=bc61dfc26041f49d086a4aa51e5ab9cbfd516ec8;p=catagits%2Fcatbook-code.git diff --git a/lib/LolCatalyst/Lite/Translator.pm b/lib/LolCatalyst/Lite/Translator.pm index 3aeb7de..7dd978e 100644 --- a/lib/LolCatalyst/Lite/Translator.pm +++ b/lib/LolCatalyst/Lite/Translator.pm @@ -1,12 +1,31 @@ package LolCatalyst::Lite::Translator; +use LolCatalyst::Lite::Translator::LOLCAT; + use Moose; -use Acme::LOLCAT (); use namespace::clean -except => 'meta'; +has 'default_target' => ( + is => 'ro', isa => 'Str', required => 1, default => 'LOLCAT' +); + +has 'translators' => ( + is => 'ro', isa => 'HashRef', lazy_build => 1 +); + +sub _build_translators { + my ($self) = @_; + return { LOLCAT => LolCatalyst::Lite::Translator::LOLCAT->new }; +} + sub translate { my ($self, $text) = @_; - return Acme::LOLCAT::translate($text); + $self->translate_to($self->default_target, $text); +} + +sub translate_to { + my ($self, $target, $text) = @_; + $self->translators->{$target}->translate($text); } __PACKAGE__->meta->make_immutable;