File Coverage

blib/lib/Coro/PatchSet.pm
Criterion Covered Total %
statement 16 17 94.1
branch 5 6 83.3
condition 2 3 66.6
subroutine 3 3 100.0
pod n/a
total 26 29 89.6


line stmt bran cond sub pod time code
1             package Coro::PatchSet;
2              
3 3     3   32016 use strict;
  3         6  
  3         99  
4 3     3   11 use Carp;
  3         3  
  3         538  
5              
6             our $VERSION = '0.10';
7              
8             my %known_classes = (
9             socket => 'Coro/PatchSet/Socket.pm',
10             handle => 'Coro/PatchSet/Handle.pm',
11             lwp => 'Coro/PatchSet/LWP.pm',
12             );
13              
14             sub import {
15 3     3   20 my ($class, @import) = @_;
16            
17 3 100       11 unless (@import) {
18 2         6 @import = keys %known_classes;
19             }
20            
21 3         6 for my $class (@import) {
22 5         11 $class = lc $class;
23            
24 5 50       13 unless (exists $known_classes{$class}) {
25 0         0 croak "doesn't know how to patch `$class'";
26             }
27            
28 5 100 66     25 if ($class eq 'lwp' && @_ == 1) {
29             # Net::HTTP and others may be not installed
30 2         2 eval { require $known_classes{$class} }
  2         684  
31             }
32             else {
33 3         974 require $known_classes{$class};
34             }
35             }
36             }
37              
38             1;
39              
40             __END__