File Coverage

blib/lib/DigitalOcean/Action.pm
Criterion Covered Total %
statement 9 20 45.0
branch n/a
condition n/a
subroutine 3 5 60.0
pod 2 2 100.0
total 14 27 51.8


line stmt bran cond sub pod time code
1 1     1   4 use strict;
  1         2  
  1         31  
2             package DigitalOcean::Action;
3 1     1   5 use Mouse;
  1         2  
  1         5  
4 1     1   269 use DigitalOcean::Types;
  1         2  
  1         308  
5              
6             #ABSTRACT: Represents an Action object in the DigitalOcean API
7              
8             has DigitalOcean => (
9             is => 'rw',
10             isa => 'DigitalOcean',
11             );
12              
13              
14             has id => (
15             is => 'ro',
16             isa => 'Num',
17             );
18              
19              
20             has status => (
21             is => 'rw',
22             isa => 'Str',
23             );
24              
25              
26             has type => (
27             is => 'ro',
28             isa => 'Str',
29             );
30              
31              
32             has started_at => (
33             is => 'ro',
34             isa => 'Str',
35             );
36              
37              
38             has completed_at => (
39             is => 'rw',
40             isa => 'Str|Undef',
41             );
42              
43              
44             has resource_id => (
45             is => 'ro',
46             isa => 'Num|Undef',
47             );
48              
49              
50             has resource_type => (
51             is => 'ro',
52             isa => 'Str',
53             );
54              
55              
56             has region => (
57             is => 'rw',
58             isa => 'Coerced::DigitalOcean::Region|Undef',
59             coerce => 1,
60             );
61              
62              
63             has region_slug => (
64             is => 'ro',
65             isa => 'Undef|Str',
66             );
67              
68            
69 0     0 1   sub complete { shift->status eq 'completed' }
70            
71            
72             sub wait {
73 0     0 1   my ($self) = @_;
74 0           my $action = $self;
75            
76 0           print "going to wait\n";
77 0           until($action->complete) {
78 0           print "waiting\n";
79 0           sleep($self->DigitalOcean->time_between_requests);
80 0           $action = $self->DigitalOcean->action($action->id);
81             }
82 0           print "complete\n";
83            
84 0           $self->status($action->status);
85 0           $self->completed_at($action->completed_at);
86             }
87              
88              
89             __PACKAGE__->meta->make_immutable();
90              
91             1;
92              
93             __END__