File Coverage

lib/Git/Wrapper/Plus/Support/RangeSet.pm
Criterion Covered Total %
statement 35 36 97.2
branch 3 4 75.0
condition n/a
subroutine 10 10 100.0
pod 3 3 100.0
total 51 53 96.2


line stmt bran cond sub pod time code
1 6     6   1464 use 5.008; # utf8
  6         22  
  6         895  
2 6     6   38 use strict;
  6         12  
  6         2679  
3 6     6   35 use warnings;
  6         13  
  6         234  
4 6     6   1007 use utf8;
  6         32  
  6         202  
5              
6             package Git::Wrapper::Plus::Support::RangeSet;
7             $Git::Wrapper::Plus::Support::RangeSet::VERSION = '0.004010';
8             # ABSTRACT: A set of ranges of supported things
9              
10             our $AUTHORITY = 'cpan:KENTNL'; # AUTHORITY
11              
12 6     6   1744 use Moo qw( has );
  6         18568  
  6         90  
13              
14              
15              
16              
17              
18              
19              
20             has 'items' => ( is => ro =>, lazy => 1, builder => 1 );
21              
22             sub _build_items {
23 118     118   3890 return [];
24             }
25              
26              
27              
28              
29              
30              
31              
32              
33              
34             sub add_range_object {
35 118     118 1 746 my ( $self, $range_object ) = @_;
36 118         170 push @{ $self->items }, $range_object;
  118         3689  
37 118         421 return $self;
38             }
39              
40              
41              
42              
43              
44              
45              
46              
47              
48              
49              
50              
51              
52              
53             sub add_range {
54 118     118 1 1214 my ( $self, @args ) = @_;
55 118         148 my $config;
56 118 50       290 if ( 1 == @args ) {
57 118         179 $config = $args[0];
58             }
59             else {
60 0         0 $config = {@args};
61             }
62 118         9388 require Git::Wrapper::Plus::Support::Range;
63 118         5879 return $self->add_range_object( Git::Wrapper::Plus::Support::Range->new($config) );
64             }
65              
66              
67              
68              
69              
70              
71              
72              
73              
74              
75             sub supports_version {
76 35     35 1 550 my ( $self, $version_object ) = @_;
77 35         123 for my $item ( @{ $self->items } ) {
  35         971  
78 35         846 my $cmp = $item->supports_version($version_object);
79 35 100       669139 return $cmp if defined $cmp;
80             }
81 1         55 return;
82             }
83              
84 6     6   6402 no Moo;
  6         12  
  6         34  
85             1;
86              
87             __END__