X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2Fcatbook-code.git;a=blobdiff_plain;f=lib%2FLolCatalyst%2FLite%2FTranslator.pm;h=3088d8d997b31a4fca6746e815e9bfafb91eae88;hp=3aeb7de279249ec05a5bd5203abe5270e6a0ee4e;hb=8030498424f1d73611c3f9c0d42c373e157b132c;hpb=ce2df964c41eb0269a7f9d5c2a5c3124376dcf81 diff --git a/lib/LolCatalyst/Lite/Translator.pm b/lib/LolCatalyst/Lite/Translator.pm index 3aeb7de..3088d8d 100644 --- a/lib/LolCatalyst/Lite/Translator.pm +++ b/lib/LolCatalyst/Lite/Translator.pm @@ -1,6 +1,36 @@ package LolCatalyst::Lite::Translator; use Moose; +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) = @_; + $self->translate_to($self->default_target, $text); +} + +sub translate_to { + my ($self, $target, $text) = @_; + $self->translators->{$target}->translate($text); +} + +__PACKAGE__->meta->make_immutable; + +package LolCatalyst::Lite::Translator::LOLCAT; + +use Moose; use Acme::LOLCAT (); use namespace::clean -except => 'meta';