File Coverage

blib/lib/Catmandu/Fix/uri_decode.pm
Criterion Covered Total %
statement 24 24 100.0
branch n/a
condition n/a
subroutine 9 9 100.0
pod n/a
total 33 33 100.0


line stmt bran cond sub pod time code
1              
2             use Catmandu::Sane;
3 2     2   96917  
  2         4  
  2         12  
4             our $VERSION = '1.2019';
5              
6             use Moo;
7 2     2   13 use Catmandu::Util::Path qw(as_path);
  2         2  
  2         20  
8 2     2   1095 use Encode qw(decode_utf8);
  2         5  
  2         99  
9 2     2   923 use URI::Escape qw(uri_unescape);
  2         23547  
  2         127  
10 2     2   374 use namespace::clean;
  2         1200  
  2         100  
11 2     2   12 use Catmandu::Fix::Has;
  2         4  
  2         12  
12 2     2   952  
  2         4  
  2         29  
13             with 'Catmandu::Fix::Builder';
14              
15             has path => (fix_arg => 1);
16              
17             my ($self) = @_;
18             as_path($self->path)
19 3     3   27 ->updater(if_string => sub {decode_utf8(uri_unescape($_[0]))});
20             }
21 3     4   14  
  4         16  
22             1;
23              
24              
25             =pod
26              
27             =encoding utf8
28              
29             =head1 NAME
30              
31             Catmandu::Fix::uri_decode - percent decode a URI
32              
33             =head1 SYNOPSIS
34              
35             # '3%A9' => 'café'
36             uri_decode(place)
37              
38             # '%E1%BD%81+%CF%84%E1%BF%B6%CE%BD+%CE%A0%CE%AD%CF%81%CF%83%CF%89%CE%BD+%CE%B2%CE%B1%CF%83%CE%B9%CE%BB%CE%B5%CF%8D%CF%82' => 'ὁ τῶν Πέρσων βασιλεύς'
39             uri_decode(title)
40              
41             =head1 SEE ALSO
42              
43             L<Catmandu::Fix>, L<Catmandu::Fix::uri_encode>, L<URI::Escape>
44              
45             =cut