File Coverage

blib/lib/Module/Changes/Parser/YAML.pm
Criterion Covered Total %
statement 29 29 100.0
branch 1 2 50.0
condition n/a
subroutine 8 8 100.0
pod 1 1 100.0
total 39 40 97.5


line stmt bran cond sub pod time code
1             package Module::Changes::Parser::YAML;
2              
3 2     2   1430 use warnings;
  2         4  
  2         66  
4 2     2   20 use strict;
  2         3  
  2         79  
5 2     2   96 use YAML;
  2         6  
  2         106  
6 2     2   11 use Module::Changes;
  2         4  
  2         29  
7 2     2   58 use DateTime::Format::W3CDTF;
  2         3  
  2         14  
8 2     2   56 use Perl::Version;
  2         5  
  2         16  
9              
10              
11             our $VERSION = '0.05';
12              
13              
14 2     2   87 use base 'Module::Changes::Parser';
  2         5  
  2         1240  
15              
16              
17             sub parse_string {
18 1     1 1 7331 my ($self, $content) = @_;
19 1         8 my $spec = Load($content);
20              
21 1         5312 my $changes = Module::Changes->make_object_for_type('entire');
22              
23 1         67 $changes->name($spec->{global}{name});
24 1 50       8 for my $rel_spec (@{ $spec->{releases} || []}) {
  1         8  
25 1         16 $changes->releases_push(Module::Changes
26             ->make_object_for_type('release',
27             version => Perl::Version->new($rel_spec->{version}),
28             date => DateTime::Format::W3CDTF->new->parse_datetime(
29             $rel_spec->{date}),
30             author => $rel_spec->{author},
31             changes => $rel_spec->{changes},
32             tags => $rel_spec->{tags},
33             ));
34             }
35              
36 1         772 $changes;
37             }
38              
39              
40             1;
41              
42              
43             __END__