File Coverage

blib/lib/WWW/Google/Contacts/Type/Rel.pm
Criterion Covered Total %
statement 19 24 79.1
branch 0 4 0.0
condition n/a
subroutine 7 8 87.5
pod 0 1 0.0
total 26 37 70.2


line stmt bran cond sub pod time code
1             package WWW::Google::Contacts::Type::Rel;
2             {
3             $WWW::Google::Contacts::Type::Rel::VERSION = '0.39';
4             }
5              
6 3     3   17 use Moose;
  3         6  
  3         27  
7 3     3   21776 use MooseX::Types::Moose qw( Str );
  3         7  
  3         48  
8 3     3   16086 use WWW::Google::Contacts::Meta::Attribute::Trait::XmlField;
  3         8  
  3         153  
9              
10             extends 'WWW::Google::Contacts::Type::Base';
11              
12 3     3   18 use constant SCHEME => 'http://schemas.google.com/g/2005';
  3         7  
  3         887  
13              
14             has name => (
15             isa => Str,
16             is => 'ro',
17             lazy_build => 1,
18             );
19              
20             has uri => (
21             isa => Str,
22             is => 'rw',
23             traits => ['XmlField'],
24             xml_key => 'rel',
25             predicate => 'has_uri',
26             lazy_build => 1,
27             );
28              
29             sub _build_name {
30 0     0   0 my $self = shift;
31 0 0       0 die "No URI" unless $self->uri;
32 0 0       0 unless ( $self->uri =~ m{\#(.+)$} ) {
33 0         0 die "Can't parse uri: " . $self->uri;
34             }
35 0         0 return $1;
36             }
37              
38             sub _build_uri {
39 3     3   4 my $self = shift;
40 3         118 return sprintf( "%s#%s", SCHEME, $self->name );
41             }
42              
43             sub to_xml_hashref {
44 2     2 0 5 my $self = shift;
45 2         100 return $self->uri;
46             }
47              
48 3     3   19 no Moose;
  3         7  
  3         18  
49             __PACKAGE__->meta->make_immutable;
50             1;
51             __END__