File Coverage

blib/lib/AnyEvent/Beanstalk/Job.pm
Criterion Covered Total %
statement 9 66 13.6
branch 0 20 0.0
condition 0 24 0.0
subroutine 3 15 20.0
pod 11 12 91.6
total 23 137 16.7


line stmt bran cond sub pod time code
1             package AnyEvent::Beanstalk::Job;
2             $AnyEvent::Beanstalk::Job::VERSION = '1.170590';
3 6     6   22 use strict;
  6         7  
  6         186  
4 6     6   25 use warnings;
  6         7  
  6         233  
5              
6 6     6   20 use base qw(Class::Accessor::Fast);
  6         6  
  6         3027  
7              
8             __PACKAGE__->mk_accessors(qw(id client buried reserved data error));
9              
10             sub new {
11 0     0 1   my $proto = shift;
12 0   0       bless {@_}, ref($proto) || $proto;
13             }
14              
15             sub stats {
16 0     0 1   my $self = shift;
17 0           my ($stats, $err) = $self->client->stats_job($self->id)->recv;
18 0 0         return $self->{_stats} = $stats if $stats;
19 0   0       $self->error($err || 'unknown');
20 0           return undef;
21             }
22              
23             sub delete {
24 0     0 1   my $self = shift;
25 0           my ($ok, $err) = $self->client->delete($self->id)->recv;
26 0 0         if ($ok) {
27 0           $self->reserved(0);
28 0           $self->buried(0);
29 0           return 1;
30             }
31 0   0       $self->error($err || 'unknown');
32 0           return undef;
33             }
34              
35             sub touch {
36 0     0 1   my $self = shift;
37 0           my ($ok, $err) = $self->client->touch($self->id)->recv;
38 0 0         return 1 if $ok;
39 0   0       $self->error($err || 'unknown');
40 0           return undef;
41             }
42              
43             sub peek {
44 0     0 1   my $self = shift;
45 0           my ($job, $err) = $self->client->peek($self->id)->recv;
46 0 0         if ($job) {
47 0           $self->data($job->data);
48 0           return 1;
49             }
50 0   0       $self->error($err || 'unknown');
51 0           return undef;
52             }
53              
54             sub release {
55 0     0 1   my $self = shift;
56 0           my $opt = shift;
57 0           my ($ok, $err) = $self->client->release($self->id, $opt)->recv;
58 0           $self->reserved(0);
59 0 0         return 1 if $ok;
60 0   0       $self->error($err || 'unknown');
61 0           return undef;
62             }
63              
64             sub bury {
65 0     0 1   my $self = shift;
66 0           my $opt = shift;
67 0           my ($ok, $err) = $self->client->bury($self->id, $opt)->recv;
68 0 0         if ($ok) {
69 0           $self->reserved(0);
70 0           $self->buried(1);
71 0           return 1;
72             }
73 0   0       $self->error($err || 'unknown');
74 0           return undef;
75             }
76              
77             # DEPRECATED! The proper method name is "args".
78 0     0 0   sub decode { goto \&args; }
79              
80             sub args {
81 0     0 1   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__