File Coverage

blib/lib/Alvis/URLs.pm
Criterion Covered Total %
statement 21 41 51.2
branch 0 8 0.0
condition n/a
subroutine 7 11 63.6
pod 4 4 100.0
total 32 64 50.0


line stmt bran cond sub pod time code
1             package Alvis::URLs;
2              
3             $Alvis::URLs::VERSION = '0.3';
4              
5             ###################### CONFIGURATION #####################
6              
7              
8             ############ END CONFIGURATION ######################
9              
10 1     1   32054 use Digest::MD5 qw(md5_hex);
  1         3  
  1         72  
11 1     1   5 use strict;
  1         2  
  1         33  
12 1     1   1164 use POSIX;
  1         8014  
  1         7  
13 1     1   4529 use Encode;
  1         15107  
  1         96  
14 1     1   1125 use URI;
  1         8170  
  1         41  
15              
16             # encoding pragmas follow any includes like "use"
17 1     1   2236 use encoding 'utf8';
  1         3751  
  1         6  
18 1     1   1433 use open ':utf8';
  1         1309  
  1         5  
19              
20             # return 32-bit unsigned
21             sub easyhash32
22             {
23 0     0 1   my $string = shift;
24 0           Encode::_utf8_off($string);
25 0           my $dig = md5_hex($string);
26             # print $dig . " \n";
27 0           return POSIX::strtol(substr($dig,0,8),16);
28             }
29              
30             # return 64-bit unsigned
31             sub easyhash64char
32             {
33 0     0 1   my $string = shift;
34 0           Encode::_utf8_off($string);
35 0           my $dig = md5_hex($string);
36             # print $dig . " \n";
37 0           return substr($dig,0,16);
38             }
39              
40             # URL switches
41             $Alvis::URLs::nocase = 0;
42             $Alvis::URLs::noclean = 0;
43             $Alvis::URLs::keepfrag = 0;
44              
45             sub CleanURL() {
46 0 0   0 1   if ( !$_[0] ) {
47 0           return undef;
48             }
49 0           my $uri = new URI($_[0]);
50 0 0         if ( ! $Alvis::URLs::keepfrag ) {
51 0           $uri->fragment(undef);
52             }
53 0           return $uri->canonical;
54             }
55              
56             sub StandardURL() {
57 0     0 1   my $inu = shift();
58 0 0         if ( $Alvis::URLs::nocase ) {
59 0           $inu = lc($inu);
60             }
61 0 0         if ( $Alvis::URLs::noclean == 0 ) {
62 0           $inu = &Alvis::URLs::CleanURL($inu);
63             }
64 0           return $inu;
65             }
66              
67              
68             1;
69              
70             __END__