bump version to 1.15
[gitmo/Moose.git] / lib / Moose / Meta / Method / Accessor / Native / Array / accessor.pm
1 package Moose::Meta::Method::Accessor::Native::Array::accessor;
2
3 use strict;
4 use warnings;
5
6 our $VERSION = '1.15';
7 $VERSION = eval $VERSION;
8 our $AUTHORITY = 'cpan:STEVAN';
9
10 use Moose::Role;
11
12 with '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     };
31
32 sub _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
53     $code
54         .= "\n"
55         . 'return '
56         . $self
57         ->Moose::Meta::Method::Accessor::Native::Array::get::_return_value(
58         $slot_access)
59         . ';';
60
61     # set
62     $code .= "\n" . '} else {';
63
64     $code .= "\n" . $self->_writer_core( $inv, $slot_access );
65
66     $code .= "\n" . $self->_inline_post_body(@_);
67
68     $code .= "\n}";
69     $code .= "\n}";
70
71     return $code;
72 }
73
74 # If we get one argument we won't check the argument count
75 sub _minimum_arguments {2}
76 sub _maximum_arguments {2}
77
78 no Moose::Role;
79
80 1;