File Coverage

blib/lib/Parallel/Workers/Backend.pm
Criterion Covered Total %
statement 13 15 86.6
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 18 20 90.0


line stmt bran cond sub pod time code
1             package Parallel::Workers::Backend;
2              
3 1     1   18788 use warnings;
  1         3  
  1         33  
4 1     1   5 use strict;
  1         1  
  1         32  
5 1     1   52 use Carp;
  1         2  
  1         67  
6 1     1   4758 use Data::Dumper;
  1         13981  
  1         274  
7              
8             use Module::Pluggable
9 0           search_path => [ "Parallel::Workers::Backend" ],
10 1     1   731 sub_name => 'backends';
  0            
11              
12              
13              
14              
15             # Module implementation here
16             # ( backend=> "SSH", contructor => $value)
17             sub new {
18             my $class = shift;
19             my %args = @_;
20              
21             my $self = {};
22              
23             my ($backend) = $args{backend} || (grep !/::Null$/, $self->backends)[0];
24             $backend ||= "Parallel::Workers::Backend::Null";
25              
26             eval "require $backend" or die $@;
27             return unless $backend;
28             $self->{backend} = $backend->new(%{$args{constructor}}) or return;
29            
30             bless $self, $class;
31             return $self;
32             }
33              
34              
35             sub pre {
36             my $self = shift;
37             return $self->{backend}->pre( @_ );
38             }
39              
40             sub do {
41             my $self = shift;
42             return $self->{backend}->do(@_);
43             }
44              
45             sub post {
46             my $self = shift;
47             return $self->{backend}->post( @_ );
48             }
49              
50              
51              
52             1; # Magic true value required at end of module
53             __END__