File Coverage

blib/lib/Net/Posterous/Media/Local.pm
Criterion Covered Total %
statement 12 26 46.1
branch 0 6 0.0
condition n/a
subroutine 4 7 57.1
pod 2 2 100.0
total 18 41 43.9


line stmt bran cond sub pod time code
1             package Net::Posterous::Media::Local;
2              
3 1     1   5 use strict;
  1         2  
  1         32  
4 1     1   6 use base qw(Net::Posterous::Object);
  1         2  
  1         65  
5 1     1   6 use Class::Accessor "antlers";
  1         21  
  1         6  
6 1     1   900 use URI::file;
  1         7592  
  1         228  
7              
8             =head1 NAME
9              
10             Net::Posterous::Media::Local - represent local media files
11              
12             =head1 METHODS
13              
14             =cut
15              
16             =head2 new
17              
18             Create a new local file
19              
20             =cut
21              
22             sub new {
23 0     0 1   my $class = shift;
24 0           my %opts = @_;
25 0           my $file = delete $opts{file};
26 0           my $self = bless \%opts, $class;
27 0 0         $self->file($file) if $file;
28 0           return $self;
29             }
30              
31             =head2 url
32              
33             Get or set the url to this local media files
34              
35             =cut
36              
37             has url => ( is => "rw", isa => "Str" );
38              
39             =head2 file
40              
41             Get or set the path to this file.
42              
43             =cut
44             sub file {
45 0     0 1   my $self = shift;
46             # keep url() in sync
47 0 0         if (@_) {
48 0           $self->url("".URI::file->new(shift));
49             }
50 0           my $uri = URI->new($self->url);
51 0 0         return undef unless 'file' eq $uri->scheme;
52 0           return $uri->path;
53             }
54              
55             sub _to_params {
56 0     0     my $self = shift;
57 0           return { type => 'local', url => $self->url };
58             }
59             1;