File Coverage

blib/lib/Time/Str.pm
Criterion Covered Total %
statement 37 39 94.8
branch 3 6 50.0
condition n/a
subroutine 11 11 100.0
pod n/a
total 51 56 91.0


line stmt bran cond sub pod time code
1             package Time::Str;
2 24     24   2533931 use strict;
  24         48  
  24         974  
3 24     24   218 use warnings;
  24         55  
  24         1392  
4 24     24   416 use v5.10.1;
  24         80  
5              
6 24     24   151 use Carp qw[];
  24         54  
  24         688  
7 24     24   102 use Exporter qw[import];
  24         44  
  24         5869  
8              
9             BEGIN {
10 24     24   108 our $VERSION = '0.85';
11 24         96 our @EXPORT_OK = qw[ str2date
12             str2time
13             time2str ];
14 24         82 our %EXPORT_TAGS = ( all => \@EXPORT_OK );
15 24         71 our @CARP_NOT = qw[Time::Str::PP];
16              
17 24         43 my $xs_loaded = 0;
18             eval {
19 24         214 require XSLoader; XSLoader::load(__PACKAGE__, $VERSION);
  24         28022  
20 24         138 $xs_loaded = 1;
21 24 50       137 } unless $ENV{TIME_STR_PP};
22              
23 24 50       119 unless ($xs_loaded) {
24 0         0 require Time::Str::PP;
25 0         0 Time::Str::PP->import(@EXPORT_OK);
26             }
27              
28 24         214 require constant;
29 24 50       3283 constant->import(IMPLEMENTATION => $xs_loaded ? 'XS' : 'PP');
30             }
31              
32 24     24   171 use constant MIN_TIME => -62135596800; # 0001-01-01T00:00:00Z
  24         38  
  24         1279  
33 24     24   129 use constant MAX_TIME => 253402300799; # 9999-12-31T23:59:59Z
  24         42  
  24         1327  
34              
35 24         3253 use constant NON_CONSTRUCTOR_KEYS => qw[ tz_abbrev
36             tz_annotation
37             tz_offset
38 24     24   153 tz_utc ];
  24         44  
39              
40              
41             # XS call_pv("Carp::croak") inherits the caller's cop, causing
42             # Carp to see the wrong package. These wrappers give Carp the
43             # correct package for @CARP_NOT resolution.
44             {
45             package Time::Str;
46             sub _croak {
47 17     17   651109 &Carp::croak;
48             }
49             }
50              
51             {
52             package
53             Time::Str::Token; # hide from PAUSE/indexers
54             sub _croak {
55 32     32   354206 &Carp::croak;
56             }
57             }
58              
59             1;