File Coverage

blib/lib/Perinci/Result/Util.pm
Criterion Covered Total %
statement 17 17 100.0
branch 14 14 100.0
condition 12 12 100.0
subroutine 4 4 100.0
pod 1 1 100.0
total 48 48 100.0


line stmt bran cond sub pod time code
1             package Perinci::Result::Util;
2              
3 1     1   581 use 5.010001;
  1         3  
4 1     1   5 use strict;
  1         1  
  1         17  
5 1     1   4 use warnings;
  1         2  
  1         236  
6              
7             require Exporter;
8             our @ISA = qw(Exporter);
9             our @EXPORT_OK = qw(
10             is_env_res
11             );
12              
13             our $VERSION = '0.03'; # VERSION
14             our $DATE = '2015-09-03'; # DATE
15              
16             sub is_env_res {
17 18     18 1 674 my $res = shift;
18              
19 18 100       55 return 0 unless ref($res) eq 'ARRAY';
20 16 100       32 return 0 unless @$res <= 4;
21              
22             # check status
23 15 100 100     167 return 0 unless defined($res->[0]) && $res->[0] =~ /\A[0-9]{1,3}\z/
      100        
      100        
24             && $res->[0] >= 100 && $res->[0] < 599;
25              
26             # check message
27 8 100       19 return 0 unless !ref($res->[1]);
28 7 100       16 if (defined $res->[1]) {
29 6 100       21 return 0 unless $res->[1] =~ /[A-Za-z]/;
30             }
31              
32             # check result metadata
33 6 100 100     25 return 0 if defined($res->[3]) && ref($res->[3]) ne 'HASH';
34              
35 5         17 1;
36             }
37              
38             1;
39             # ABSTRACT: Utilities related to enveloped result
40              
41             __END__