File Coverage

blib/lib/WWW/Hetzner/Cloud/PlacementGroup.pm
Criterion Covered Total %
statement 9 19 47.3
branch 0 4 0.0
condition n/a
subroutine 3 6 50.0
pod 3 3 100.0
total 15 32 46.8


line stmt bran cond sub pod time code
1             package WWW::Hetzner::Cloud::PlacementGroup;
2             # ABSTRACT: Hetzner Cloud Placement Group object
3              
4             our $VERSION = '0.100';
5              
6 25     25   167 use Moo;
  25         54  
  25         167  
7 25     25   10414 use Carp qw(croak);
  25         79  
  25         1607  
8 25     25   171 use namespace::clean;
  25         92  
  25         257  
9              
10              
11             has _client => (
12             is => 'ro',
13             required => 1,
14             weak_ref => 1,
15             init_arg => 'client',
16             );
17              
18             has id => ( is => 'ro' );
19              
20              
21             has name => ( is => 'rw' );
22              
23              
24             has type => ( is => 'ro' );
25              
26              
27             has servers => ( is => 'ro', default => sub { [] } );
28              
29              
30             has labels => ( is => 'rw', default => sub { {} } );
31              
32              
33             has created => ( is => 'ro' );
34              
35              
36             # Actions
37             sub update {
38 0     0 1   my ($self) = @_;
39 0 0         croak "Cannot update placement group without ID" unless $self->id;
40              
41 0           $self->_client->put("/placement_groups/" . $self->id, {
42             name => $self->name,
43             labels => $self->labels,
44             });
45 0           return $self;
46             }
47              
48              
49             sub delete {
50 0     0 1   my ($self) = @_;
51 0 0         croak "Cannot delete placement group without ID" unless $self->id;
52              
53 0           $self->_client->delete("/placement_groups/" . $self->id);
54 0           return 1;
55             }
56              
57              
58             sub data {
59 0     0 1   my ($self) = @_;
60             return {
61 0           id => $self->id,
62             name => $self->name,
63             type => $self->type,
64             servers => $self->servers,
65             labels => $self->labels,
66             created => $self->created,
67             };
68             }
69              
70              
71              
72             1.
73              
74             __END__