File Coverage

blib/lib/WWW/Google/Contacts/Type/Name.pm
Criterion Covered Total %
statement 19 19 100.0
branch 1 2 50.0
condition n/a
subroutine 6 6 100.0
pod n/a
total 26 27 96.3


line stmt bran cond sub pod time code
1             package WWW::Google::Contacts::Type::Name;
2             {
3             $WWW::Google::Contacts::Type::Name::VERSION = '0.39';
4             }
5              
6 19     19   111 use Moose;
  19         43  
  19         150  
7 19     19   126232 use MooseX::Types::Moose qw( Str );
  19         48  
  19         227  
8 19     19   98854 use WWW::Google::Contacts::InternalTypes qw( YomiStr );
  19         43  
  19         162  
9 19     19   45813 use WWW::Google::Contacts::Meta::Attribute::Trait::XmlField;
  19         855  
  19         21195  
10              
11             extends 'WWW::Google::Contacts::Type::Base';
12              
13             has given_name => (
14             isa => YomiStr,
15             is => 'rw',
16             traits => ['XmlField'],
17             xml_key => 'gd:givenName',
18             predicate => 'has_given_name',
19             is_element => 1,
20             coerce => 1,
21             );
22              
23             has additional_name => (
24             isa => YomiStr,
25             is => 'rw',
26             traits => ['XmlField'],
27             xml_key => 'gd:additionalName',
28             predicate => 'has_additional_name',
29             is_element => 1,
30             coerce => 1,
31             );
32              
33             has family_name => (
34             isa => YomiStr,
35             is => 'rw',
36             traits => ['XmlField'],
37             xml_key => 'gd:familyName',
38             predicate => 'has_family_name',
39             is_element => 1,
40             coerce => 1,
41             );
42              
43             has name_prefix => (
44             isa => Str,
45             is => 'rw',
46             traits => ['XmlField'],
47             xml_key => 'gd:namePrefix',
48             predicate => 'has_name_prefix',
49             is_element => 1,
50             );
51              
52             has name_suffix => (
53             isa => Str,
54             is => 'rw',
55             traits => ['XmlField'],
56             xml_key => 'gd:nameSuffix',
57             predicate => 'has_name_suffix',
58             is_element => 1,
59             );
60              
61             has full_name => (
62             isa => YomiStr,
63             is => 'rw',
64             traits => ['XmlField'],
65             xml_key => 'gd:fullName',
66             predicate => 'has_full_name',
67             trigger => \&_full_name_set,
68             is_element => 1,
69             coerce => 1,
70             );
71              
72             sub _full_name_set {
73 4     4   8 my ( $self, $full_name ) = @_;
74              
75             # Try to be clever..
76 4 50       32 if ( $full_name =~ m{^([\w\-]+)\s+([\w\-]+)$} ) {
77 4         168 $self->given_name($1);
78 4         170 $self->family_name($2);
79             }
80             }
81              
82 19     19   137 no Moose;
  19         34  
  19         138  
83             __PACKAGE__->meta->make_immutable;
84             1;
85             __END__