04703260225c096253abe1a0f4de46e8738f731d
[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 $AUTHORITY = 'cpan:STEVAN';
9
10 use Moose::Role;
11
12 with 'Moose::Meta::Method::Accessor::Native::Reader' => {
13     -excludes => [
14         qw(
15             _minimum_arguments
16             _inline_check_arguments
17             )
18     ],
19     },
20     'Moose::Meta::Method::Accessor::Native::Hash';
21
22 sub _minimum_arguments { 1 }
23
24 sub _inline_check_arguments {
25     my $self = shift;
26
27     return (
28         'for (@_) {',
29             $self->_inline_check_var_is_valid_key('$_'),
30         '}',
31     );
32 }
33
34 sub _return_value {
35     my $self = shift;
36     my ($slot_access) = @_;
37
38     return '@_ > 1 '
39              . '? @{ (' . $slot_access . ') }{@_} '
40              . ': ' . $slot_access . '->{$_[0]}';
41 }
42
43 no Moose::Role;
44
45 1;