File Coverage

blib/lib/BioX/Workflow/Command/run/Rules/Directives/Types/CSV.pm
Criterion Covered Total %
statement 6 20 30.0
branch 0 4 0.0
condition n/a
subroutine 2 3 66.6
pod 0 1 0.0
total 8 28 28.5


line stmt bran cond sub pod time code
1             package BioX::Workflow::Command::run::Rules::Directives::Types::CSV;
2              
3 1     1   1571 use Moose::Role;
  1         5  
  1         10  
4 1     1   8551 use Text::CSV::Slurp;
  1         5  
  1         288  
5              
6             with 'BioX::Workflow::Command::run::Rules::Directives::Types::Roles::File';
7              
8             after 'BUILD' => sub {
9             my $self = shift;
10              
11             $self->set_register_types(
12             'csv',
13             {
14             builder => 'create_reg_attr',
15             lookup => ['.*csv$']
16             }
17             );
18              
19             $self->set_register_process_directives( 'csv',
20             { builder => 'process_directive_csv', lookup => ['.*_csv$'] } );
21             };
22              
23             sub process_directive_csv {
24 0     0 0   my $self = shift;
25 0           my $k = shift;
26 0           my $v = shift;
27              
28 0           my $file = $self->check_file_exists( $k, $v );
29 0 0         return unless $file;
30              
31 0           my $data = Text::CSV::Slurp->load( file => $file );
32              
33 0 0         if ( exists $v->{key} ) {
34 0           my $key = $v->{key};
35 0           my %hoh = map { $_->{$key} => $_ } @{$data};
  0            
  0            
36 0           $self->$k( \%hoh );
37 0           return;
38             }
39              
40 0           $self->$k($data);
41             }
42              
43             1;