File Coverage

lib/MetaPOD/Role/Format.pm
Criterion Covered Total %
statement 29 33 87.8
branch 5 6 83.3
condition n/a
subroutine 9 10 90.0
pod 2 2 100.0
total 45 51 88.2


line stmt bran cond sub pod time code
1 3     3   42646 use 5.008; # utf8
  3         14  
  3         201  
2 3     3   21 use strict;
  3         7  
  3         127  
3 3     3   20 use warnings;
  3         6  
  3         130  
4 3     3   2340 use utf8;
  3         29  
  3         28  
5              
6             package MetaPOD::Role::Format;
7             $MetaPOD::Role::Format::VERSION = '0.3.6';
8             # ABSTRACT: Base role for common format routines
9              
10             our $AUTHORITY = 'cpan:KENTNL'; # AUTHORITY
11              
12 3     3   1183 use Moo::Role qw( requires );
  3         33428  
  3         23  
13 3     3   1854 use Carp qw( croak );
  3         6  
  3         272  
14 3     3   3480 use version 0.77;
  3         8177  
  3         24  
15              
16              
17              
18              
19              
20              
21              
22              
23              
24              
25              
26              
27              
28              
29              
30              
31              
32              
33              
34              
35              
36              
37              
38              
39              
40              
41 10     10 1 458 sub supported_versions { return qw( v1.0.0 ) }
42              
43              
44              
45              
46              
47              
48              
49              
50              
51              
52              
53             sub _supported_versions {
54 0     0   0 my $class = shift;
55 0         0 return map { version->parse($_) } $class->supported_versions;
  0         0  
56             }
57              
58              
59              
60              
61              
62              
63              
64              
65              
66              
67              
68              
69              
70             sub supports_version {
71 13     13 1 26338 my ( $class, $version ) = @_;
72 13 100       51 return [ $class->supported_versions ]->[-1] if not defined $version;
73 12 50       52 if ( $version !~ /^v/msx ) {
74 0         0 croak q{Version specification does not begin with a 'v'};
75             }
76 12         98 my $v = version->parse($version);
77 12         35 for my $supported ( $class->supported_versions ) {
78 17 100       252 return $supported if $supported == $v;
79             }
80 6         34 croak "Version $v not supported. Supported versions: " . join q{,}, $class->supported_versions;
81             }
82              
83             requires 'add_segment';
84              
85             1;
86              
87             __END__