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