File Coverage

blib/lib/App/Pastebin/sprunge.pm
Criterion Covered Total %
statement 28 29 96.5
branch 6 8 75.0
condition n/a
subroutine 5 5 100.0
pod 2 2 100.0
total 41 44 93.1


line stmt bran cond sub pod time code
1             package App::Pastebin::sprunge;
2 3     3   284286 use strict;
  3         7  
  3         103  
3 3     3   13 use warnings;
  3         6  
  3         96  
4 3     3   40 use v5.10.1;
  3         8  
  3         919  
5              
6             # ABSTRACT: application for pasting to and reading from sprunge.us
7             our $VERSION = '0.011'; # VERSION
8              
9              
10             sub new {
11 3     3 1 154849 my $class = shift;
12              
13 3         7 my $self;
14 3 100       18 if (@ARGV) { # READ
15 1         4 $self->{paste_id} = shift @ARGV;
16 1         1192 require WWW::Pastebin::Sprunge::Retrieve;
17 1         134795 $self->{reader} = WWW::Pastebin::Sprunge::Retrieve->new();
18             }
19             else { # WRITE
20 2         2391 require WWW::Pastebin::Sprunge::Create;
21 2         178403 $self->{writer} = WWW::Pastebin::Sprunge::Create->new();
22             }
23 3         14709 return bless $self, $class;
24             }
25              
26              
27             sub run {
28 2     2 1 9 my $self = shift;
29 2         4 my $lang = shift;
30              
31 2 100       18 if ($self->{paste_id}) { # READ
32 1 50       7 $self->{reader}->retrieve($self->{paste_id})
33             or die "Reading paste $self->{paste_id} failed: ", $self->{reader}->error();
34 0         0 say $self->{reader};
35             }
36             else { # WRITE
37 1         2 my $text = do { local $/; };
  1         6  
  1         25  
38 1 50       8 $self->{writer}->paste($text, lang => $lang)
39             or die 'Paste failed: ', $self->{writer}->error();
40 1         1178259 say $self->{writer};
41             }
42 1         95 return;
43             }
44              
45             1;
46              
47             __END__