push the accessor inlining code back into the attribute
[gitmo/Moose.git] / lib / Moose / Meta / Method / Accessor / Native / Hash / get.pm
1 package Moose::Meta::Method::Accessor::Native::Hash::get;
2
3 use strict;
4 use warnings;
5
6 use Scalar::Util qw( looks_like_number );
7
8 our $VERSION = '1.19';
9 $VERSION = eval $VERSION;
10 our $AUTHORITY = 'cpan:STEVAN';
11
12 use Moose::Role;
13
14 with 'Moose::Meta::Method::Accessor::Native::Reader' => {
15     -excludes => [
16         qw(
17             _minimum_arguments
18             _inline_check_arguments
19             )
20     ],
21     },
22     'Moose::Meta::Method::Accessor::Native::Hash';
23
24 sub _minimum_arguments { 1 }
25
26 sub _inline_check_arguments {
27     my $self = shift;
28
29     return (
30         'for (@_) {',
31             $self->_inline_check_var_is_valid_key('$_'),
32         '}',
33     );
34 }
35
36 sub _return_value {
37     my $self = shift;
38     my ($slot_access) = @_;
39
40     return '@_ > 1 '
41              . '? @{ (' . $slot_access . ') }{@_} '
42              . ': ' . $slot_access . '->{$_[0]}';
43 }
44
45 no Moose::Role;
46
47 1;