File Coverage

blib/lib/Promises6/Util.pm
Criterion Covered Total %
statement 32 32 100.0
branch 6 10 60.0
condition 6 6 100.0
subroutine 9 9 100.0
pod 2 2 100.0
total 55 59 93.2


line stmt bran cond sub pod time code
1             package Promises6::Util;
2 32     32   123 use Evo -modern;
  32         38  
  32         134  
3              
4 32     32   4578 use Scalar::Util;
  32         102  
  32         1621  
5 32     32   117 use Exporter 'import';
  32         45  
  32         2000  
6              
7             my @CONST = qw(PENDING FULFILLED REJECTED PROGRESS);
8             our @EXPORT_OK = (@CONST, qw(is_promise is_thenable));
9             our %EXPORT_TAGS = (all => \@EXPORT_OK, const => \@CONST);
10              
11 32     32   134 use constant PENDING => -1;
  32         45  
  32         1969  
12 32     32   111 use constant FULFILLED => 0;
  32         31  
  32         1051  
13 32     32   107 use constant REJECTED => 1;
  32         36  
  32         1202  
14 32     32   108 use constant PROGRESS => 2;
  32         34  
  32         5070  
15              
16 256 50   256 1 426 sub is_promise($val) {
  256 50       359  
  256         208  
  256         170  
17 256 100 100     1085 return unless $val && Scalar::Util::blessed($val);
18 88         240 return $val->isa(Promises6::Builder->singleton->promise_class);
19             }
20              
21 207 50   207 1 309 sub is_thenable($val) {
  207 50       266  
  207         182  
  207         153  
22 207   100     1148 return $val && Scalar::Util::blessed($val) && $val->can('then');
23             }
24              
25             1;
26              
27             # ABSTRACT: internal utils
28              
29             __END__