File Coverage

blib/lib/Test2/Compare/Pattern.pm
Criterion Covered Total %
statement 32 32 100.0
branch 12 12 100.0
condition 5 5 100.0
subroutine 10 10 100.0
pod 3 4 75.0
total 62 63 98.4


line stmt bran cond sub pod time code
1             package Test2::Compare::Pattern;
2 169     169   1249 use strict;
  169         352  
  169         5269  
3 169     169   925 use warnings;
  169         392  
  169         4253  
4              
5 169     169   895 use base 'Test2::Compare::Base';
  169         403  
  169         18945  
6              
7             our $VERSION = '0.000156';
8              
9 169     169   1240 use Test2::Util::HashBase qw/pattern stringify_got/;
  169         363  
  169         1116  
10              
11             # Overloads '!' for us.
12 169     169   30713 use Test2::Compare::Negatable;
  169         408  
  169         1049  
13              
14 169     169   1123 use Carp qw/croak/;
  169         368  
  169         42679  
15              
16             sub init {
17 808     808 0 10316 my $self = shift;
18              
19 808 100       4472 croak "'pattern' is a required attribute" unless $self->{+PATTERN};
20              
21 807   100     2798 $self->{+STRINGIFY_GOT} ||= 0;
22              
23 807         2285 $self->SUPER::init();
24             }
25              
26 22     22 1 132 sub name { shift->{+PATTERN} . "" }
27 22 100   22 1 113 sub operator { shift->{+NEGATE} ? '!~' : '=~' }
28              
29             sub verify {
30 853     853 1 1620 my $self = shift;
31 853         2790 my %params = @_;
32 853         2101 my ($got, $exists) = @params{qw/got exists/};
33              
34 853 100       1903 return 0 unless $exists;
35 851 100       1685 return 0 unless defined($got);
36 849 100 100     2149 return 0 if ref $got && !$self->stringify_got;
37              
38             return $got !~ $self->{+PATTERN}
39 847 100       9106 if $self->{+NEGATE};
40              
41 833         8872 return $got =~ $self->{+PATTERN};
42             }
43              
44             1;
45              
46             __END__