File Coverage

blib/lib/Syntax/Keyword/Junction/All.pm
Criterion Covered Total %
statement 89 92 96.7
branch 54 58 93.1
condition n/a
subroutine 21 21 100.0
pod 0 16 0.0
total 164 187 87.7


line stmt bran cond sub pod time code
1             package Syntax::Keyword::Junction::All;
2              
3 10     10   67 use strict;
  10         18  
  10         400  
4 10     10   99 use warnings;
  10         18  
  10         689  
5              
6             our $VERSION = '0.003008'; # VERSION
7              
8 10     10   11334 use parent 'Syntax::Keyword::Junction::Base';
  10         3644  
  10         270  
9              
10             BEGIN {
11 10 50   10   685 if ($] >= 5.010001) {
12 10 100   10 0 1291 eval q|
  10 50   3   10934  
  10 0       365  
  10         145  
  3         8  
  3         13  
  3         8  
  5         77  
  1         40  
  0         0  
  0         0  
  0         0  
13             sub match {
14             my ( $self, $other, $is_rhs ) = @_;
15             no if $] > 5.017010, warnings => 'experimental::smartmatch';
16              
17             if ($is_rhs) {
18             for (@$self) {
19             return unless $other ~~ $_;
20             }
21              
22             return 1;
23             }
24              
25             for (@$self) {
26             return unless $_ ~~ $other;
27             }
28              
29             return 1;
30             }
31             |
32             }
33             }
34              
35             sub num_eq {
36 36 100   36 0 129 return regex_eq(@_) if ref( $_[1] ) eq 'Regexp';
37              
38 31         54 my ( $self, $test ) = @_;
39              
40 31         61 for (@$self) {
41 51 100       445 return unless $_ == $test;
42             }
43              
44 14         80 return 1;
45             }
46              
47             sub num_ne {
48 9 100   9 0 39 return regex_ne(@_) if ref( $_[1] ) eq 'Regexp';
49              
50 5         9 my ( $self, $test ) = @_;
51              
52 5         11 for (@$self) {
53 11 100       34 return unless $_ != $test;
54             }
55              
56 3         13 return 1;
57             }
58              
59             sub num_ge {
60 28     28 0 52 my ( $self, $test, $switch ) = @_;
61              
62 28 100       101 return num_le( $self, $test ) if $switch;
63              
64 11         28 for (@$self) {
65 23 100       334 return unless $_ >= $test;
66             }
67              
68 7         33 return 1;
69             }
70              
71             sub num_gt {
72 13     13 0 27 my ( $self, $test, $switch ) = @_;
73              
74 13 100       58 return num_lt( $self, $test ) if $switch;
75              
76 8         19 for (@$self) {
77 14 100       53 return unless $_ > $test;
78             }
79              
80 3         20 return 1;
81             }
82              
83             sub num_le {
84 23     23 0 44 my ( $self, $test, $switch ) = @_;
85              
86 23 100       62 return num_ge( $self, $test ) if $switch;
87              
88 20         38 for (@$self) {
89 42 100       146 return unless $_ <= $test;
90             }
91              
92 9         40 return 1;
93             }
94              
95             sub num_lt {
96 11     11 0 21 my ( $self, $test, $switch ) = @_;
97              
98 11 100       35 return num_gt( $self, $test ) if $switch;
99              
100 8         18 for (@$self) {
101 17 100       70 return unless $_ < $test;
102             }
103              
104 2         12 return 1;
105             }
106              
107             sub str_eq {
108 2     2 0 5 my ( $self, $test ) = @_;
109              
110 2         6 for (@$self) {
111 4 100       19 return unless $_ eq $test;
112             }
113              
114 1         4 return 1;
115             }
116              
117             sub str_ne {
118 2     2 0 5 my ( $self, $test ) = @_;
119              
120 2         5 for (@$self) {
121 4 100       17 return unless $_ ne $test;
122             }
123              
124 1         6 return 1;
125             }
126              
127             sub str_ge {
128 9     9 0 21 my ( $self, $test, $switch ) = @_;
129              
130 9 100       47 return str_le( $self, $test ) if $switch;
131              
132 6         14 for (@$self) {
133 10 100       37 return unless $_ ge $test;
134             }
135              
136 4         22 return 1;
137             }
138              
139             sub str_gt {
140 9     9 0 20 my ( $self, $test, $switch ) = @_;
141              
142 9 100       28 return str_lt( $self, $test ) if $switch;
143              
144 6         16 for (@$self) {
145 8 100       40 return unless $_ gt $test;
146             }
147              
148 2         11 return 1;
149             }
150              
151             sub str_le {
152 9     9 0 20 my ( $self, $test, $switch ) = @_;
153              
154 9 100       77 return str_ge( $self, $test ) if $switch;
155              
156 6         14 for (@$self) {
157 10 100       40 return unless $_ le $test;
158             }
159              
160 4         21 return 1;
161             }
162              
163             sub str_lt {
164 9     9 0 19 my ( $self, $test, $switch ) = @_;
165              
166 9 100       27 return str_gt( $self, $test ) if $switch;
167              
168 6         15 for (@$self) {
169 8 100       35 return unless $_ lt $test;
170             }
171              
172 2         10 return 1;
173             }
174              
175             sub regex_eq {
176 5     5 0 11 my ( $self, $test, $switch ) = @_;
177              
178 5         14 for (@$self) {
179 13 100       91 return unless $_ =~ $test;
180             }
181              
182 2         13 return 1;
183             }
184              
185             sub regex_ne {
186 4     4 0 7 my ( $self, $test, $switch ) = @_;
187              
188 4         10 for (@$self) {
189 11 100       67 return unless $_ !~ $test;
190             }
191              
192 2         10 return 1;
193             }
194              
195             sub bool {
196 6     6 0 58 my ($self) = @_;
197              
198 6         17 for (@$self) {
199 12 100       46 return unless $_;
200             }
201              
202 3         9 return 1;
203             }
204              
205             1;
206              
207             __END__