File Coverage

blib/lib/AnyEvent/Beanstalk/Job.pm
Criterion Covered Total %
statement 9 65 13.8
branch 0 20 0.0
condition 0 24 0.0
subroutine 3 14 21.4
pod 10 11 90.9
total 22 134 16.4


line stmt bran cond sub pod time code
1             package AnyEvent::Beanstalk::Job;
2             {
3             $AnyEvent::Beanstalk::Job::VERSION = '1.123530';
4             }
5              
6 5     5   30 use strict;
  5         9  
  5         216  
7 5     5   33 use warnings;
  5         10  
  5         228  
8              
9 5     5   26 use base qw(Class::Accessor::Fast);
  5         45  
  5         4763  
10              
11             __PACKAGE__->mk_accessors(qw(id client buried reserved data error));
12              
13             sub new {
14 0     0 1   my $proto = shift;
15 0   0       bless {@_}, ref($proto) || $proto;
16             }
17              
18             sub stats {
19 0     0 1   my $self = shift;
20 0           my ($stats, $err) = $self->client->stats($self->id)->recv;
21 0 0         return $self->{_stats} = $stats if $stats;
22 0   0       $self->error($err || 'unknown');
23 0           return undef;
24             }
25              
26             sub delete {
27 0     0 1   my $self = shift;
28 0           my ($ok, $err) = $self->client->delete($self->id)->recv;
29 0 0         if ($ok) {
30 0           $self->reserved(0);
31 0           $self->buried(0);
32 0           return 1;
33             }
34 0   0       $self->error($err || 'unknown');
35 0           return undef;
36             }
37              
38             sub touch {
39 0     0 1   my $self = shift;
40 0           my ($ok, $err) = $self->client->touch($self->id)->recv;
41 0 0         return 1 if $ok;
42 0   0       $self->error($err || 'unknown');
43 0           return undef;
44             }
45              
46             sub peek {
47 0     0 1   my $self = shift;
48 0           my ($job, $err) = $self->client->peek($self->id)->recv;
49 0 0         if ($job) {
50 0           $self->data($job->data);
51 0           return 1;
52             }
53 0   0       $self->error($err || 'unknown');
54 0           return undef;
55             }
56              
57             sub release {
58 0     0 1   my $self = shift;
59 0           my $opt = shift;
60 0           my ($ok, $err) = $self->client->release($self->id, $opt)->recv;
61 0           $self->reserved(0);
62 0 0         return 1 if $ok;
63 0   0       $self->error($err || 'unknown');
64 0           return undef;
65             }
66              
67             sub bury {
68 0     0 1   my $self = shift;
69 0           my $opt = shift;
70 0           my ($ok, $err) = $self->client->bury($self->id, $opt)->recv;
71 0 0         if ($ok) {
72 0           $self->reserved(0);
73 0           $self->buried(1);
74 0           return 1;
75             }
76 0   0       $self->error($err || 'unknown');
77 0           return undef;
78             }
79              
80             sub decode {
81 0     0 0   my $self = shift;
82 0           my $data = $self->data;
83 0 0         return unless defined($data);
84 0           $self->client->decoder->($data);
85             }
86              
87             sub tube {
88 0     0 1   my $self = shift;
89              
90 0 0 0       my $stats = $self->{_stats} || $self->stats
91             or return undef;
92              
93 0           $stats->tube;
94             }
95              
96             sub ttr {
97 0     0 1   my $self = shift;
98              
99 0 0 0       my $stats = $self->{_stats} || $self->stats
100             or return undef;
101              
102 0           $stats->ttr;
103             }
104              
105             sub priority {
106 0     0 1   my $self = shift;
107              
108 0 0 0       my $stats = $self->{_stats} || $self->stats
109             or return undef;
110              
111 0           $stats->pri;
112             }
113              
114             1;
115              
116             __END__