File Coverage

blib/lib/DateTime/Format/Builder/Parser/Quick.pm
Criterion Covered Total %
statement 15 28 53.5
branch 0 8 0.0
condition n/a
subroutine 5 7 71.4
pod 1 1 100.0
total 21 44 47.7


line stmt bran cond sub pod time code
1             package DateTime::Format::Builder::Parser::Quick;
2             {
3             $DateTime::Format::Builder::Parser::Quick::VERSION = '0.81';
4             }
5 24     24   129 use strict;
  24         43  
  24         928  
6 24     24   119 use warnings;
  24         44  
  24         728  
7 24     24   121 use vars qw( %dispatch_data );
  24         53  
  24         6836  
8 24     24   126 use Params::Validate qw( SCALAR OBJECT CODEREF validate );
  24         46  
  24         1955  
9 24     24   135 use base qw( DateTime::Format::Builder::Parser );
  24         70  
  24         14776  
10              
11              
12              
13             __PACKAGE__->valid_params(
14             Quick => {
15             type => SCALAR | OBJECT,
16             callbacks => {
17             good_classname => sub {
18             ( ref $_[0] ) or ( $_[0] =~ /^\w+[:'\w+]*\w+/ );
19             },
20             }
21             },
22             method => {
23             optional => 1,
24             type => SCALAR | CODEREF,
25             },
26             );
27              
28             sub create_parser {
29 0     0 1   my ( $self, %args ) = @_;
30 0           my $class = $args{Quick};
31 0           my $method = $args{method};
32 0 0         $method = 'parse_datetime' unless defined $method;
33 0           eval "use $class";
34 0 0         die $@ if $@;
35              
36             return sub {
37 0     0     my ( $self, $date ) = @_;
38 0 0         return unless defined $date;
39 0           my $rv = eval { $class->$method($date) };
  0            
40 0 0         return $rv if defined $rv;
41 0           return;
42 0           };
43             }
44              
45             1;
46              
47             # ABSTRACT: Use another formatter, simply
48              
49             __END__