X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FLolCatalyst%2FLite%2FTranslator.pm;h=05122a12dfd46a1b2afa98efa92ed51e4ef9b846;hb=d0dd2387fed0dc4a2775282d7c6b06ee241a947e;hp=aada7fc268ee9482370d39be0bdf99ce2ece43fb;hpb=836279c989b5b3477fb4456ce2462417b2860646;p=catagits%2Fcatbook-code.git diff --git a/lib/LolCatalyst/Lite/Translator.pm b/lib/LolCatalyst/Lite/Translator.pm index aada7fc..05122a1 100644 --- a/lib/LolCatalyst/Lite/Translator.pm +++ b/lib/LolCatalyst/Lite/Translator.pm @@ -3,6 +3,7 @@ package LolCatalyst::Lite::Translator; use Module::Pluggable::Object; use Moose; +use aliased 'LolCatalyst::Lite::Interface::TranslationDriver'; use namespace::clean -except => 'meta'; has 'default_target' => ( @@ -15,7 +16,7 @@ has '_translators' => ( sub _build__translators { my ($self) = @_; - my $base = __PACKAGE__; + my $base = __PACKAGE__.'::Driver'; my $mp = Module::Pluggable::Object->new( search_path => [ $base ] ); @@ -23,6 +24,9 @@ sub _build__translators { my %translators; foreach my $class (@classes) { Class::MOP::load_class($class); + unless ($class->does(TranslationDriver)) { + confess "Class ${class} in ${base}:: namespace does not implement Translation Driver interface"; + } (my $name = $class) =~ s/^\Q${base}::\E//; $translators{$name} = $class->new; }