X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FMeta%2FMethod%2FAccessor%2FNative%2FReader.pm;h=2a0744f7303783ac965721fbc8c3cf95a6b8b7f1;hb=00bbc132f9e1cb2b1a44aa287887cafa27a84577;hp=b0c1c45657cf00113d502d8bd18f4e7978684cd5;hpb=8b9641b857cdd065a68f9b74ad072b1d58fcd4e1;p=gitmo%2FMoose.git diff --git a/lib/Moose/Meta/Method/Accessor/Native/Reader.pm b/lib/Moose/Meta/Method/Accessor/Native/Reader.pm index b0c1c45..2a0744f 100644 --- a/lib/Moose/Meta/Method/Accessor/Native/Reader.pm +++ b/lib/Moose/Meta/Method/Accessor/Native/Reader.pm @@ -3,10 +3,6 @@ package Moose::Meta::Method::Accessor::Native::Reader; use strict; use warnings; -our $VERSION = '1.14'; -$VERSION = eval $VERSION; -our $AUTHORITY = 'cpan:STEVAN'; - use Moose::Role; with 'Moose::Meta::Method::Accessor::Native'; @@ -16,49 +12,34 @@ requires '_return_value'; 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; + my $inv = '$self'; + my $slot_access = $self->_get_value($inv); - my $slot_access = $self->_inline_get($inv); - - $code .= "\n" . $self->_reader_core( $inv, $slot_access, @_ ); - - $code .= "\n}"; - - return $code; + return ( + 'sub {', + 'my ' . $inv . ' = shift;', + $self->_inline_curried_arguments, + $self->_inline_reader_core($inv, $slot_access, @_), + '}', + ); } -sub _reader_core { - my ( $self, $inv, $slot_access, @extra ) = @_; - - my $code = q{}; - - $code .= "\n" . $self->_inline_check_argument_count; - $code .= "\n" . $self->_inline_process_arguments( $inv, $slot_access ); - $code .= "\n" . $self->_inline_check_arguments; - - $code .= "\n" . $self->_inline_check_lazy($inv); - $code .= "\n" . $self->_inline_post_body(@extra); - $code .= "\n" . $self->_inline_return_value($slot_access); - - return $code; +sub _inline_reader_core { + my $self = shift; + my ($inv, $slot_access, @extra) = @_; + + return ( + $self->_inline_check_argument_count, + $self->_inline_process_arguments($inv, $slot_access), + $self->_inline_check_arguments, + $self->_inline_check_lazy($inv, '$type_constraint', '$type_coercion', '$type_message'), + $self->_inline_return_value($slot_access), + ); } -sub _inline_process_arguments {q{}} +sub _inline_process_arguments { return } -sub _inline_check_arguments {q{}} - -sub _inline_return_value { - my ( $self, $slot_access ) = @_; - - 'return ' . $self->_return_value($slot_access) . ';'; -} +sub _inline_check_arguments { return } no Moose::Role;