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;'; |
21 | $code .= "\n" . $self->_inline_process_arguments; |
22 | |
23 | $code |
24 | .= "\n" |
25 | . $self->_inline_throw_error( |
26 | q{"Cannot assign a value to a read-only accessor"}, 'data => \@_' ) |
27 | . ' if @_ > 1;'; |
28 | |
29 | $code .= "\n" . $self->_inline_check_lazy($inv); |
30 | $code .= "\n" . $self->_inline_post_body(@_); |
31 | |
32 | my $slot_access = $self->_inline_get($inv); |
33 | |
34 | $code .= "\n" . 'return ' . $self->_return_value($slot_access) . ';'; |
35 | $code .= "\n}"; |
36 | |
37 | return $code; |
38 | } |
39 | |
40 | sub _inline_process_arguments { q{} } |
41 | |
42 | 1; |