File Coverage

blib/lib/Moose/Meta/Method/Accessor/Native/Hash/Writer.pm
Criterion Covered Total %
statement 18 23 78.2
branch 0 4 0.0
condition n/a
subroutine 6 8 75.0
pod n/a
total 24 35 68.5


line stmt bran cond sub pod time code
1             package Moose::Meta::Method::Accessor::Native::Hash::Writer;
2             our $VERSION = '2.2205';
3              
4 7     7   4402 use strict;
  7         20  
  7         235  
5 7     7   40 use warnings;
  7         17  
  7         210  
6              
7 7     7   66 use Class::MOP::MiniTrait;
  7         18  
  7         211  
8              
9 7     7   35 use Moose::Role;
  7         15  
  7         49  
10              
11             with 'Moose::Meta::Method::Accessor::Native::Writer',
12             'Moose::Meta::Method::Accessor::Native::Hash',
13             'Moose::Meta::Method::Accessor::Native::Collection';
14              
15             sub _inline_coerce_new_values {
16 0     0   0 my $self = shift;
17              
18 0 0       0 return unless $self->associated_attribute->should_coerce;
19              
20 0 0       0 return unless $self->_tc_member_type_can_coerce;
21              
22 0         0 return <<'EOF';
23             if (@_) {
24             my %h = @_;
25             @h{ sort keys %h } = map { $member_coercion->($_) } @h{ sort keys %h };
26             }
27             EOF
28             }
29              
30 0     0   0 sub _new_members { 'values %{ { @_ } }' }
31              
32             sub _copy_old_value {
33 8     8   31 my $self = shift;
34 8         20 my ($slot_access) = @_;
35              
36 8         55 return '{ %{ (' . $slot_access . ') } }';
37             }
38              
39 7     7   64 no Moose::Role;
  7         18  
  7         59  
40              
41             1;