Mercurial > pub > Impl
view lib/IMPL/Web/View/ObjectFactory.pm @ 412:30e8c6a74937 ref20150831
working on di container (role based registrations)
author | cin |
---|---|
date | Mon, 21 Sep 2015 19:54:10 +0300 |
parents | c6e90e02dd17 |
children |
line wrap: on
line source
package IMPL::Web::View::ObjectFactory; use strict; our $AUTOLOAD; use IMPL::declare { require => { Exception => 'IMPL::Exception', OpException => '-IMPL::InvalidOperationException' }, base =>[ 'IMPL::Object::Factory' => '@_' ] }; use IMPL::Resources::Strings { MsgNoMethod => 'Method "%method%" isn\'t found in "%target%"' }; sub AUTOLOAD { my $this = shift; my ($method) = ($AUTOLOAD =~ m/(\w+)$/); return if $method eq 'DESTROY'; my $target = $this->factory; if ( $target->can($method) ) { return $target->$method(@_); } else { die OpException->new( MsgNoMethod( method => $method, target => $target ) ); } } 1;