File Coverage

blib/lib/Git/Wrapper/Plus/Support/RangeSet.pm
Criterion Covered Total %
statement 31 32 96.8
branch 3 4 75.0
condition n/a
subroutine 9 9 100.0
pod 3 3 100.0
total 46 48 95.8


line stmt bran cond sub pod time code
1 6     6   481 use 5.006; # our
  6         15  
2 6     6   24 use strict;
  6         8  
  6         104  
3 6     6   15 use warnings;
  6         7  
  6         301  
4              
5             package Git::Wrapper::Plus::Support::RangeSet;
6              
7             our $VERSION = '0.004011';
8              
9             # ABSTRACT: A set of ranges of supported things
10              
11             our $AUTHORITY = 'cpan:KENTNL'; # AUTHORITY
12              
13 6     6   427 use Moo qw( has );
  6         9667  
  6         35  
14              
15              
16              
17              
18              
19              
20              
21             has 'items' => ( is => ro =>, lazy => 1, builder => 1 );
22              
23             sub _build_items {
24 118     118   762 return [];
25             }
26              
27              
28              
29              
30              
31              
32              
33              
34              
35             sub add_range_object {
36 118     118 1 112 my ( $self, $range_object ) = @_;
37 118         98 push @{ $self->items }, $range_object;
  118         1962  
38 118         244 return $self;
39             }
40              
41              
42              
43              
44              
45              
46              
47              
48              
49              
50              
51              
52              
53              
54             sub add_range {
55 118     118 1 659 my ( $self, @args ) = @_;
56 118         93 my $config;
57 118 50       196 if ( 1 == @args ) {
58 118         114 $config = $args[0];
59             }
60             else {
61 0         0 $config = {@args};
62             }
63 118         2610 require Git::Wrapper::Plus::Support::Range;
64 118         1917 return $self->add_range_object( Git::Wrapper::Plus::Support::Range->new($config) );
65             }
66              
67              
68              
69              
70              
71              
72              
73              
74              
75              
76             sub supports_version {
77 35     35 1 302 my ( $self, $version_object ) = @_;
78 35         54 for my $item ( @{ $self->items } ) {
  35         780  
79 35         378 my $cmp = $item->supports_version($version_object);
80 35 100       174961 return $cmp if defined $cmp;
81             }
82 1         24 return;
83             }
84              
85 6     6   3074 no Moo;
  6         40  
  6         21  
86             1;
87              
88             __END__