File Coverage

blib/lib/App/Ack/Filter/Match.pm
Criterion Covered Total %
statement 13 24 54.1
branch n/a
condition n/a
subroutine 5 10 50.0
pod 3 5 60.0
total 21 39 53.8


line stmt bran cond sub pod time code
1             package App::Ack::Filter::Match;
2              
3 2     2   1394 use strict;
  2         4  
  2         47  
4 2     2   8 use warnings;
  2         3  
  2         42  
5 2     2   8 use parent 'App::Ack::Filter';
  2         2  
  2         8  
6              
7 2     2   116 use App::Ack::Filter::MatchGroup ();
  2         3  
  2         457  
8              
9             =head1 NAME
10              
11             App::Ack::Filter::Match
12              
13             =head1 DESCRIPTION
14              
15             Implements filtering files by their filename (regular expression).
16              
17             =cut
18              
19             sub new {
20 0     0 0   my ( $class, $re ) = @_;
21              
22 0           $re =~ s{^/|/$}{}g; # XXX validate?
23 0           $re = qr/$re/i;
24              
25 0           return bless {
26             regex => $re,
27             groupname => 'MatchGroup',
28             }, $class;
29             }
30              
31             sub create_group {
32 0     0 0   return App::Ack::Filter::MatchGroup->new;
33             }
34              
35             sub filter {
36 0     0 1   my ( $self, $file ) = @_;
37              
38 0           return $file->basename =~ /$self->{regex}/;
39             }
40              
41             sub inspect {
42 0     0 1   my ( $self ) = @_;
43              
44 0           return ref($self) . ' - ' . $self->{regex};
45             }
46              
47             sub to_string {
48 0     0 1   my ( $self ) = @_;
49              
50 0           return "Filename matches $self->{regex}";
51             }
52              
53             BEGIN {
54 2     2   10 App::Ack::Filter->register_filter(match => __PACKAGE__);
55             }
56              
57             1;