d748dc5d138e6dbe1c15c760e0beb47763fdb2dd
[gitmo/Moose.git] / lib / Moose / Meta / Method / Accessor / Native / Array / push.pm
1 package Moose::Meta::Method::Accessor::Native::Array::push;
2
3 use strict;
4 use warnings;
5
6 our $AUTHORITY = 'cpan:STEVAN';
7
8 use Moose::Role;
9
10 with 'Moose::Meta::Method::Accessor::Native::Array::Writer' => {
11     -excludes => [
12         qw(
13             _inline_optimized_set_new_value
14             _return_value
15             )
16     ]
17 };
18
19 sub _adds_members { 1 }
20
21 sub _potential_value {
22     my $self = shift;
23     my ($slot_access) = @_;
24
25     return '[ @{ (' . $slot_access . ') }, @_ ]';
26 }
27
28 sub _inline_optimized_set_new_value {
29     my $self = shift;
30     my ($inv, $new, $slot_access) = @_;
31
32     return 'push @{ (' . $slot_access . ') }, @_;';
33 }
34
35 sub _return_value {
36     my $self = shift;
37     my ($slot_access) = @_;
38
39     return 'scalar @{ (' . $slot_access . ') }';
40 }
41
42 no Moose::Role;
43
44 1;