File Coverage

blib/lib/Moose/Meta/Method/Accessor/Native/Hash/accessor.pm
Criterion Covered Total %
statement 26 26 100.0
branch n/a
condition n/a
subroutine 11 11 100.0
pod n/a
total 37 37 100.0


line stmt bran cond sub pod time code
1             package Moose::Meta::Method::Accessor::Native::Hash::accessor;
2             our $VERSION = '2.2206';
3              
4 5     5   3478 use strict;
  5         14  
  5         168  
5 5     5   28 use warnings;
  5         11  
  5         142  
6              
7 5     5   28 use Moose::Role;
  5         14  
  5         44  
8              
9             with 'Moose::Meta::Method::Accessor::Native::Hash::set',
10             'Moose::Meta::Method::Accessor::Native::Hash::get';
11              
12             sub _inline_process_arguments {
13 23     23   50 my $self = shift;
14 23         98 $self->Moose::Meta::Method::Accessor::Native::Hash::set::_inline_process_arguments(@_);
15             }
16              
17             sub _inline_check_argument_count {
18 23     23   53 my $self = shift;
19 23         162 $self->Moose::Meta::Method::Accessor::Native::Hash::set::_inline_check_argument_count(@_);
20             }
21              
22             sub _inline_check_arguments {
23 23     23   56 my $self = shift;
24 23         89 $self->Moose::Meta::Method::Accessor::Native::Hash::set::_inline_check_arguments(@_);
25             }
26              
27             sub _return_value {
28 46     46   121 my $self = shift;
29 46         176 $self->Moose::Meta::Method::Accessor::Native::Hash::set::_return_value(@_);
30             }
31              
32             sub _generate_method {
33 23     23   57 my $self = shift;
34              
35 23         50 my $inv = '$self';
36 23         99 my $slot_access = $self->_get_value($inv);
37              
38             return (
39 23         171 'sub {',
40             'my ' . $inv . ' = shift;',
41             $self->_inline_curried_arguments,
42             $self->_inline_check_lazy($inv, '$type_constraint', '$type_coercion', '$type_message'),
43             # get
44             'if (@_ == 1) {',
45             $self->_inline_check_var_is_valid_key('$_[0]'),
46             $slot_access . '->{$_[0]}',
47             '}',
48             # set
49             'else {',
50             $self->_inline_writer_core($inv, $slot_access),
51             '}',
52             '}',
53             );
54             }
55              
56 23     23   83 sub _minimum_arguments { 1 }
57 23     23   76 sub _maximum_arguments { 2 }
58              
59 5     5   50 no Moose::Role;
  5         27  
  5         34  
60              
61             1;