Commit | Line | Data |
f7fd22b6 |
1 | package Moose::Meta::Method::Accessor::Native::Array::Reader; |
2 | |
3 | use strict; |
4 | use warnings; |
5 | |
6 | our $VERSION = '1.13'; |
7 | $VERSION = eval $VERSION; |
8 | our $AUTHORITY = 'cpan:STEVAN'; |
9 | |
10 | use base 'Moose::Meta::Method::Accessor::Native::Array'; |
11 | |
12 | sub _generate_method { |
13 | my $self = shift; |
14 | |
15 | my $inv = '$self'; |
16 | |
17 | my $code = 'sub {'; |
18 | $code .= "\n" . $self->_inline_pre_body(@_); |
19 | |
20 | $code .= "\n" . 'my $self = shift;'; |
f5f08b5f |
21 | $code .= "\n" . $self->_inline_curried_arguments; |
a7821be5 |
22 | $code .= "\n" . $self->_inline_check_argument_count; |
910684ee |
23 | $code .= "\n" . $self->_inline_check_arguments; |
f7fd22b6 |
24 | |
f7fd22b6 |
25 | $code .= "\n" . $self->_inline_check_lazy($inv); |
26 | $code .= "\n" . $self->_inline_post_body(@_); |
27 | |
28 | my $slot_access = $self->_inline_get($inv); |
29 | |
a7821be5 |
30 | $code .= "\n" . $self->_inline_return_value($slot_access); |
f7fd22b6 |
31 | $code .= "\n}"; |
32 | |
33 | return $code; |
34 | } |
35 | |
a7821be5 |
36 | sub _inline_return_value { |
37 | my ( $self, $slot_access ) = @_; |
38 | |
39 | 'return ' . $self->_return_value($slot_access) . ';'; |
40 | } |
41 | |
f7fd22b6 |
42 | 1; |