File Coverage

blib/lib/WWW/Shorten/5gp.pm
Criterion Covered Total %
statement 18 18 100.0
branch n/a
condition n/a
subroutine 6 6 100.0
pod n/a
total 24 24 100.0


line stmt bran cond sub pod time code
1             package WWW::Shorten::5gp;
2              
3 2     2   19953 use 5.008001;
  2         6  
  2         70  
4 2     2   10 use strict;
  2         2  
  2         70  
5 2     2   16 use warnings;
  2         3  
  2         63  
6              
7 2     2   12 use Carp;
  2         2  
  2         175  
8 2     2   809 use JSON::PP;
  2         16534  
  2         206  
9              
10 2     2   13 use base qw( WWW::Shorten::generic Exporter );
  2         2  
  2         1363  
11             our @EXPORT = qw( makeashorterlink makealongerlink );
12             our $VERSION = '1.01';
13              
14             my $service = 'http://5.gp/api/';
15              
16             sub makeashorterlink ($) {
17             my $url = shift or croak 'No URL passed to makeashorterlink';
18             my $ua = __PACKAGE__->ua();
19             my $resp = $ua->get($service .'short?longurl=' . $url);
20              
21             return if !$resp->is_success;
22             my $result = decode_json $resp->content;
23             return $result->{url};
24             }
25              
26             sub makealongerlink ($) {
27             my $url = shift or croak 'No 5.gp key / URL passed to makealongerlink';
28             my $ua = __PACKAGE__->ua();
29              
30             $url = "http://5.gp/$url" unless $url =~ m!^http://!i;
31              
32             my $resp = $ua->get($service . 'long?shorturl=' . $url);
33              
34             return if !$resp->is_success;
35             my $result = decode_json $resp->content;
36             return $result->{$url}->{target_url};
37             }
38              
39             1;
40              
41             __END__