File Coverage

blib/lib/CPAN/Changes/Entry.pm
Criterion Covered Total %
statement 9 9 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 12 12 100.0


line stmt bran cond sub pod time code
1             package CPAN::Changes::Entry;
2 32     32   285 use strict;
  32         72  
  32         1031  
3 32     32   194 use warnings;
  32         89  
  32         1816  
4              
5             our $VERSION = '0.500_001';
6             $VERSION =~ tr/_//d;
7              
8 32     32   224 use Moo;
  32         95  
  32         242  
9              
10             with 'CPAN::Changes::HasEntries';
11              
12             has text => (is => 'ro');
13             has line => (is => 'ro');
14              
15             sub serialize {
16             my ($self, %args) = @_;
17             my $indents = $args{indents} || [];
18             my $styles = $args{styles} || [];
19             my $width = $args{width} || 75;
20              
21             my $indent = $indents->[0];
22             my $style = $styles->[0];
23             my $text = $self->text;
24             if (length($style) < 2) {
25             my $space = ' ' x (2 * length $style);
26             $width -= length $space;
27             $text =~ s/\G[ \t]*([^\n]{1,$width}|[^ \t\r\n]+)([ \t\r\n]+|$)/$1\n/mg;
28             $text =~ s/[ \t]+\n/\n/g;
29             $text =~ s/^(.)/$space$1/mg;
30             substr $text, 0, length($style), $style;
31             }
32             # can't wrap this style
33             elsif (length($style) % 2 == 0) {
34             my $length = length($style) / 2;
35             $text = substr($style, 0, $length) . $text . substr($style, $length) . "\n";
36             }
37             else {
38             die "invalid changelog entry style '$style'";
39             }
40             return $text;
41             }
42              
43             1;
44             __END__