File Coverage

blib/lib/Mo/utils/IRI.pm
Criterion Covered Total %
statement 32 32 100.0
branch 6 6 100.0
condition 3 3 100.0
subroutine 8 8 100.0
pod 1 1 100.0
total 50 50 100.0


line stmt bran cond sub pod time code
1             package Mo::utils::IRI;
2              
3 3     3   103192 use base qw(Exporter);
  3         5  
  3         353  
4 3     3   23 use strict;
  3         5  
  3         65  
5 3     3   8 use warnings;
  3         5  
  3         98  
6              
7 3     3   1013 use English;
  3         4720  
  3         15  
8 3     3   2289 use Error::Pure qw(err);
  3         13402  
  3         53  
9 3     3   159 use Readonly;
  3         4  
  3         81  
10 3     3   1339 use IRI;
  3         662972  
  3         1216  
11              
12             Readonly::Array our @EXPORT_OK => qw(check_iri);
13              
14             our $VERSION = 0.03;
15              
16             sub check_iri {
17 10     10 1 258740 my ($self, $key) = @_;
18              
19 10 100       43 if (! exists $self->{$key}) {
20 1         4 return;
21             }
22              
23 9         22 my $value = $self->{$key};
24 9         16 my $iri = eval {
25 9         333 IRI->new('value' => $value);
26             };
27 9 100       20861 if ($EVAL_ERROR) {
28 2         11 err "Parameter '".$key."' doesn't contain valid IRI.",
29             'Value', $value,
30             ;
31             }
32 7 100 100     234 if (! $iri->scheme || ! $iri->host) {
33 2         766 err "Parameter '".$key."' doesn't contain valid IRI.",
34             'Value', $value,
35             ;
36             }
37              
38 5         2521 return;
39             }
40              
41             1;
42              
43             __END__