File Coverage

blib/lib/DS/Importer/Sub.pm
Criterion Covered Total %
statement 19 19 100.0
branch n/a
condition n/a
subroutine 6 6 100.0
pod 2 2 100.0
total 27 27 100.0


line stmt bran cond sub pod time code
1             #!perl
2            
3             # ########################################################################## #
4             # Title: Sub reference to datastream importer
5             # Creation date: 2007-03-05
6             # Author: Michael Zedeler
7             # Description: Produces a datastream from a sub reference
8             # Data Stream class
9             # Data importer
10             # File: $Source: /data/cvs/lib/DSlib/lib/DS/Importer/Sub.pm,v $
11             # Repository: kronhjorten
12             # State: $State: Exp $
13             # Documentation: inline
14             # Recepient: -
15             # ########################################################################## #
16            
17             package DS::Importer::Sub;
18            
19 2     2   1628 use base qw{ DS::Importer };
  2         3  
  2         1237  
20            
21 2     2   13 use strict;
  2         3  
  2         59  
22 2     2   12 use Carp::Assert;
  2         4  
  2         12  
23            
24             our ($VERSION) = $DS::VERSION;
25             our ($REVISION) = '$Revision: 1.1 $' =~ /(\d+\.\d+)/;
26            
27            
28             sub new {
29 3     3 1 1147 my( $class, $sub, $typespec, $target, $row ) = @_;
30            
31 3         24 my $self = $class->SUPER::new( $typespec, $target, $row );
32 3         9 assert(ref($sub) eq 'CODE');
33 3         12 $self->{sub} = $sub;
34            
35 3         7 return $self;
36             }
37            
38             sub _fetch {
39 3     3   5 my($self) = @_;
40 3         3 return &{$self->{sub}}($self);
  3         10  
41             }
42            
43             sub target {
44 7     7 1 12 my( $self, $target ) = @_;
45 7         20 $self->SUPER::target( $target );
46             }
47            
48             1;