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 32     32   2279673 use strict;
  32         53  
  32         1040  
3 32     32   208 use warnings;
  32         56  
  32         1354  
4 32     32   367 use v5.10.1;
  32         100  
5              
6 32     32   141 use Carp qw[];
  32         81  
  32         910  
7 32     32   115 use Exporter qw[import];
  32         67  
  32         5918  
8              
9             BEGIN {
10 32     32   97 our $VERSION = '0.92';
11 32         95 our @EXPORT_OK = qw[ str2date
12             str2time
13             time2str ];
14 32         83 our %EXPORT_TAGS = ( all => \@EXPORT_OK );
15 32         61 our @CARP_NOT = qw[Time::Str::PP];
16              
17 32         55 my $xs_loaded = 0;
18             eval {
19 32         187 require XSLoader; XSLoader::load(__PACKAGE__, $VERSION);
  32         30886  
20 32         129 $xs_loaded = 1;
21 32 50       192 } unless $ENV{TIME_STR_PP};
22              
23 32 50       132 unless ($xs_loaded) {
24 0         0 require Time::Str::PP;
25 0         0 Time::Str::PP->import(@EXPORT_OK);
26             }
27              
28 32         170 require constant;
29 32 50       3049 constant->import(IMPLEMENTATION => $xs_loaded ? 'XS' : 'PP');
30             }
31              
32 32     32   203 use constant MIN_TIME => -62135596800; # 0001-01-01T00:00:00Z
  32         40  
  32         1451  
33 32     32   130 use constant MAX_TIME => 253402300799; # 9999-12-31T23:59:59Z
  32         39  
  32         1462  
34              
35 32         3290 use constant NON_CONSTRUCTOR_KEYS => qw[ tz_abbrev
36             tz_annotation
37             tz_offset
38 32     32   127 tz_utc ];
  32         81  
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 34     34   636716 &Carp::croak;
48             }
49             }
50              
51             {
52             package
53             Time::Str::Token; # hide from PAUSE/indexers
54             sub _croak {
55 32     32   277927 &Carp::croak;
56             }
57             }
58              
59             1;