Mercurial > pub > Impl
diff Lib/IMPL/Config/Reference.pm @ 198:2ffe6f661605
Implemented IMPL::Web::Handler::RestController
fixes in IMPL::Serialization
completed IMPL::Web::Application::RestResource
added IMPL::Web::Handler::JSONView
added IMPL::Web::RestContract
author | cin |
---|---|
date | Fri, 20 Apr 2012 16:06:36 +0400 |
parents | a705e848dcc7 |
children |
line wrap: on
line diff
--- a/Lib/IMPL/Config/Reference.pm Thu Apr 19 02:10:02 2012 +0400 +++ b/Lib/IMPL/Config/Reference.pm Fri Apr 20 16:06:36 2012 +0400 @@ -3,8 +3,6 @@ use IMPL::Exception; -__PACKAGE__->PassThroughArgs; - sub restore { my ($self,$data,$surrogate) = @_; @@ -13,9 +11,8 @@ my ($tagTarget,$target) = splice @$data, 0, 2; die new IMPL::Exception('A traget tag must be the first tag in the reference specification') unless $tagTarget eq 'target'; - while(my ($method,$args) = splice @$data, 0, 2 ) { - $target = $self->_Invoke({ method => $method, args => $args}); + $target = $self->_InvokeMember($target,{ method => $method, args => $args}); } return $target; } @@ -24,9 +21,7 @@ my ($self,$object,$member) = @_; my $method = $member->{method}; - - local $@; - return eval { + return ref $object eq 'HASH' ? $object->{$method} : @@ -36,7 +31,7 @@ : () ) - }; + ; } sub _as_list {