bump version to 1.19
[gitmo/Moose.git] / lib / Moose / Meta / Method / Accessor / Native / Array / accessor.pm
CommitLineData
a7821be5 1package Moose::Meta::Method::Accessor::Native::Array::accessor;
2
3use strict;
4use warnings;
5
245478d5 6our $VERSION = '1.19';
a7821be5 7$VERSION = eval $VERSION;
8our $AUTHORITY = 'cpan:STEVAN';
9
8b9641b8 10use Moose::Role;
11
12with 'Moose::Meta::Method::Accessor::Native::Array::set' => {
13 -excludes => [
14 qw( _generate_method
15 _minimum_arguments
16 _maximum_arguments
17 _inline_process_arguments
18 _inline_check_arguments
19 _return_value)
20 ]
21 },
22 'Moose::Meta::Method::Accessor::Native::Array::get' => {
23 -excludes => [
24 qw(
25 _generate_method
26 _minimum_arguments
27 _maximum_arguments
28 )
29 ]
30 };
a7821be5 31
32sub _generate_method {
33 my $self = shift;
34
35 my $inv = '$self';
36
37 my $code = 'sub {';
38 $code .= "\n" . $self->_inline_pre_body(@_);
39
40 $code .= "\n" . 'my $self = shift;';
41
42 $code .= "\n" . $self->_inline_curried_arguments;
43
44 $code .= "\n" . $self->_inline_check_lazy($inv);
45
46 my $slot_access = $self->_inline_get($inv);
47
48 # get
49 $code .= "\n" . 'if ( @_ == 1 ) {';
50
51 $code .= "\n" . $self->_inline_check_var_is_valid_index('$_[0]');
52
44babf1f 53 $code
54 .= "\n"
55 . 'return '
56 . $self
57 ->Moose::Meta::Method::Accessor::Native::Array::get::_return_value(
58 $slot_access)
59 . ';';
a7821be5 60
61 # set
62 $code .= "\n" . '} else {';
63
9fa449cd 64 $code .= "\n" . $self->_writer_core( $inv, $slot_access );
a7821be5 65
299b3de8 66 $code .= "\n" . $self->_inline_post_body(@_);
a7821be5 67
68 $code .= "\n}";
69 $code .= "\n}";
70
71 return $code;
72}
73
8fc30049 74sub _minimum_arguments {1}
a7821be5 75sub _maximum_arguments {2}
76
8b9641b8 77no Moose::Role;
a7821be5 78
791;