File Coverage

blib/lib/Bio/MUST/Core/Taxonomy/Category.pm
Criterion Covered Total %
statement 9 14 64.2
branch 0 2 0.0
condition n/a
subroutine 3 4 75.0
pod 1 1 100.0
total 13 21 61.9


line stmt bran cond sub pod time code
1             package Bio::MUST::Core::Taxonomy::Category;
2             # ABSTRACT: Helper class for multiple-criterion classifier based on taxonomy
3             $Bio::MUST::Core::Taxonomy::Category::VERSION = '0.212670';
4 17     17   10381 use Moose;
  17         54  
  17         137  
5 17     17   123045 use namespace::autoclean;
  17         54  
  17         172  
6              
7 17     17   1584 use Bio::MUST::Core::Types;
  17         40  
  17         2764  
8              
9              
10             has 'label' => (
11             is => 'ro',
12             isa => 'Str',
13             required => 1,
14             );
15              
16              
17             has 'description' => (
18             is => 'ro',
19             isa => 'Str',
20             default => 'no description',
21             );
22              
23              
24             has 'criteria' => (
25             traits => ['Array'],
26             is => 'ro',
27             isa => 'ArrayRef[Bio::MUST::Core::Taxonomy::Criterion]',
28             required => 1,
29             handles => {
30             all_criteria => 'elements',
31             },
32             );
33              
34              
35              
36             sub matches {
37 0     0 1   my $self = shift;
38 0           my $listable = shift;
39            
40             # loop through criteria and fail on the first one not matching input
41             # this means that the multiple criteria are linked by logical ANDs
42 0           for my $criterion ($self->all_criteria) {
43 0 0         return 0 unless $criterion->matches($listable);
44             }
45              
46             # return success
47 0           return 1;
48             }
49              
50             __PACKAGE__->meta->make_immutable;
51             1;
52              
53             __END__
54              
55             =pod
56              
57             =head1 NAME
58              
59             Bio::MUST::Core::Taxonomy::Category - Helper class for multiple-criterion classifier based on taxonomy
60              
61             =head1 VERSION
62              
63             version 0.212670
64              
65             =head1 SYNOPSIS
66              
67             # TODO
68              
69             =head1 DESCRIPTION
70              
71             # TODO
72              
73             =head1 METHODS
74              
75             =head2 matches
76              
77             =head1 AUTHOR
78              
79             Denis BAURAIN <denis.baurain@uliege.be>
80              
81             =head1 COPYRIGHT AND LICENSE
82              
83             This software is copyright (c) 2013 by University of Liege / Unit of Eukaryotic Phylogenomics / Denis BAURAIN.
84              
85             This is free software; you can redistribute it and/or modify it under
86             the same terms as the Perl 5 programming language system itself.
87              
88             =cut