X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FMethod%2FAccessor%2FNative%2FHash%2Faccessor.pm;h=1b8eafd6a1ac1a9e126179080d21bb0274fcf5be;hb=0f4afc62a4744c96758cf21d234b654f5c273828;hp=3d9b21ee02259d86f8ede949864803a5a2382cb4;hpb=245478d5ee6b5343e4d591be811582963e177bef;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Method/Accessor/Native/Hash/accessor.pm b/lib/Moose/Meta/Method/Accessor/Native/Hash/accessor.pm index 3d9b21e..1b8eafd 100644 --- a/lib/Moose/Meta/Method/Accessor/Native/Hash/accessor.pm +++ b/lib/Moose/Meta/Method/Accessor/Native/Hash/accessor.pm @@ -3,10 +3,6 @@ package Moose::Meta::Method::Accessor::Native::Hash::accessor; use strict; use warnings; -our $VERSION = '1.19'; -$VERSION = eval $VERSION; -our $AUTHORITY = 'cpan:STEVAN'; - use Moose::Role; with 'Moose::Meta::Method::Accessor::Native::Hash::set' => { @@ -35,47 +31,29 @@ with 'Moose::Meta::Method::Accessor::Native::Hash::set' => { sub _generate_method { my $self = shift; - my $inv = '$self'; - - my $code = 'sub {'; - $code .= "\n" . $self->_inline_pre_body(@_); - - $code .= "\n" . 'my $self = shift;'; - - $code .= "\n" . $self->_inline_curried_arguments; - - $code .= "\n" . $self->_inline_check_lazy($inv); - - my $slot_access = $self->_inline_get($inv); - - # get - $code .= "\n" . 'if ( @_ == 1 ) {'; - - $code .= "\n" . $self->_inline_check_var_is_valid_key('$_[0]'); - - $code - .= "\n" - . 'return ' - . $self - ->Moose::Meta::Method::Accessor::Native::Hash::get::_return_value( - $slot_access) - . ';'; - - # set - $code .= "\n" . '} else {'; - - $code .= "\n" . $self->_writer_core( $inv, $slot_access ); - - $code .= "\n" . $self->_inline_post_body(@_); - - $code .= "\n}"; - $code .= "\n}"; - - return $code; + my $inv = '$self'; + my $slot_access = $self->_get_value($inv); + + return ( + 'sub {', + 'my ' . $inv . ' = shift;', + $self->_inline_curried_arguments, + $self->_inline_check_lazy($inv, '$type_constraint', '$type_constraint_obj'), + # get + 'if (@_ == 1) {', + $self->_inline_check_var_is_valid_key('$_[0]'), + $self->Moose::Meta::Method::Accessor::Native::Hash::get::_inline_return_value($slot_access), + '}', + # set + 'else {', + $self->_inline_writer_core($inv, $slot_access), + '}', + '}', + ); } -sub _minimum_arguments {1} -sub _maximum_arguments {2} +sub _minimum_arguments { 1 } +sub _maximum_arguments { 2 } no Moose::Role;