File Coverage

blib/lib/XML/NewsML_G2/Types.pm
Criterion Covered Total %
statement 15 15 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 20 20 100.0


line stmt bran cond sub pod time code
1             package XML::NewsML_G2::Types;
2              
3 18     18   9538 use Moose::Util::TypeConstraints;
  18         4352824  
  18         164  
4 18     18   36780 use Module::Runtime 'use_module';
  18         42  
  18         136  
5              
6 18     18   4299 use namespace::autoclean;
  18         50726  
  18         117  
7 18     18   1248 use warnings;
  18         35  
  18         518  
8 18     18   91 use strict;
  18         33  
  18         4998  
9              
10             enum 'XML::NewsML_G2::Types::Nature',
11             [qw(text picture graphics audio video composite concept)];
12              
13             enum 'XML::NewsML_G2::Types::Group_Mode', [qw(bag sequential alternative)];
14              
15             class_type 'XML::NewsML_G2::Link';
16             coerce 'XML::NewsML_G2::Link', from 'Str',
17             via { use_module('XML::NewsML_G2::Link')->new( residref => $_ ) };
18              
19             class_type 'XML::NewsML_G2::Destination';
20             coerce 'XML::NewsML_G2::Destination', from 'Str',
21             via { use_module('XML::NewsML_G2::Destination')->new( name => $_ ) };
22              
23             subtype 'XML::NewsML_G2::ArrayRefOfLinks',
24             as 'ArrayRef[XML::NewsML_G2::Link]';
25             coerce 'XML::NewsML_G2::ArrayRefOfLinks', from 'ArrayRef[HashRef]', via {
26             [ map { XML::NewsML_G2::Link->new($_) } @$_ ]
27             };
28              
29             class_type 'XML::NewsML_G2::Creator';
30             coerce 'XML::NewsML_G2::Creator', from 'Str',
31             via { use_module('XML::NewsML_G2::Creator')->new( name => $_ ) };
32             subtype 'XML::NewsML_G2::ArrayRefOfCreators',
33             as 'ArrayRef[XML::NewsML_G2::Creator]';
34             coerce 'XML::NewsML_G2::ArrayRefOfCreators', from 'ArrayRef[Str]', via {
35             [ map { XML::NewsML_G2::Creator->new( name => $_ ) } @$_ ]
36             };
37              
38             class_type 'XML::NewsML_G2::Translatable_Text';
39             coerce 'XML::NewsML_G2::Translatable_Text', from 'Str',
40             via { use_module('XML::NewsML_G2::Translatable_Text')->new( text => $_ ) };
41              
42             1;
43             __END__
44              
45             =head1 NAME
46              
47             XML::NewsML_G2::Types - various Moose attribute types used by NewsML_G2 classes
48              
49             =head1 AUTHOR
50              
51             Christian Eder C<< <christian.eder@apa.at> >>
52              
53             =head1 LICENCE AND COPYRIGHT
54              
55             Copyright (c) 2013, APA-IT. All rights reserved.
56              
57             See L<XML::NewsML_G2> for the license.