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   2153971 use strict;
  32         56  
  32         1034  
3 32     32   186 use warnings;
  32         66  
  32         1245  
4 32     32   420 use v5.10.1;
  32         90  
5              
6 32     32   132 use Carp qw[];
  32         56  
  32         633  
7 32     32   110 use Exporter qw[import];
  32         48  
  32         5509  
8              
9             BEGIN {
10 32     32   95 our $VERSION = '0.91';
11 32         91 our @EXPORT_OK = qw[ str2date
12             str2time
13             time2str ];
14 32         77 our %EXPORT_TAGS = ( all => \@EXPORT_OK );
15 32         62 our @CARP_NOT = qw[Time::Str::PP];
16              
17 32         51 my $xs_loaded = 0;
18             eval {
19 32         194 require XSLoader; XSLoader::load(__PACKAGE__, $VERSION);
  32         29222  
20 32         129 $xs_loaded = 1;
21 32 50       146 } unless $ENV{TIME_STR_PP};
22              
23 32 50       108 unless ($xs_loaded) {
24 0         0 require Time::Str::PP;
25 0         0 Time::Str::PP->import(@EXPORT_OK);
26             }
27              
28 32         201 require constant;
29 32 50       3091 constant->import(IMPLEMENTATION => $xs_loaded ? 'XS' : 'PP');
30             }
31              
32 32     32   147 use constant MIN_TIME => -62135596800; # 0001-01-01T00:00:00Z
  32         40  
  32         1362  
33 32     32   118 use constant MAX_TIME => 253402300799; # 9999-12-31T23:59:59Z
  32         55  
  32         1358  
34              
35 32         3149 use constant NON_CONSTRUCTOR_KEYS => qw[ tz_abbrev
36             tz_annotation
37             tz_offset
38 32     32   119 tz_utc ];
  32         41  
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   603170 &Carp::croak;
48             }
49             }
50              
51             {
52             package
53             Time::Str::Token; # hide from PAUSE/indexers
54             sub _croak {
55 32     32   295708 &Carp::croak;
56             }
57             }
58              
59             1;