File Coverage

blib/lib/Enbld/Target/AttributeExtension/URL.pm
Criterion Covered Total %
statement 20 20 100.0
branch 2 2 100.0
condition n/a
subroutine 5 5 100.0
pod 0 1 0.0
total 27 28 96.4


line stmt bran cond sub pod time code
1             package Enbld::Target::AttributeExtension::URL;
2              
3 8     8   5858 use strict;
  8         20  
  8         356  
4 8     8   53 use warnings;
  8         16  
  8         188  
5              
6 8     8   42 use Carp;
  8         14  
  8         522  
7              
8 8     8   40 use parent qw/Enbld::Target::AttributeExtension::Word/;
  8         13  
  8         52  
9              
10             sub validate {
11 208     208 0 605 my ( $self, $string ) = @_;
12              
13 208         815 $self->SUPER::validate( $string );
14              
15 196         425 my $pattern = q{s?https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+};
16              
17 196 100       2817 if ( $string !~ /^$pattern$/ ) {
18 4         32 my $type = ref( $self );
19 4         22 $type =~ s/.*:://;
20 4         22 require Enbld::Exception;
21 4         26 croak( Enbld::Exception->new(
22             "Attribute '$type' isn't valid URL string", $string
23             ));
24             }
25             }
26              
27             1;
28