File Coverage

blib/lib/App/Toodledo/InternalWrapper.pm
Criterion Covered Total %
statement 31 31 100.0
branch 4 4 100.0
condition n/a
subroutine 9 9 100.0
pod 3 3 100.0
total 47 47 100.0


line stmt bran cond sub pod time code
1             package App::Toodledo::InternalWrapper;
2              
3 10     10   5107 use Carp;
  10         22  
  10         623  
4 10     10   69 use Package::Stash;
  10         18  
  10         192  
5 10     10   45 use Moose;
  10         21  
  10         55  
6 10     10   58305 use MooseX::Method::Signatures;
  10         20  
  10         97  
7             with 'MooseX::Log::Log4perl';
8              
9             our $VERSION = '1.01';
10              
11             # Because delegation doesn't get attributes
12             sub BUILD
13             {
14 5     5 1 17985 my ($self, $argref) = @_;
15              
16 5         137 $self->object->$_( $argref->{$_} ) for keys %$argref;
17             }
18              
19              
20             sub internal_attributes
21             {
22 28     28 1 116 my ($class, $meta) = @_;
23              
24 28         164 map { $_, $_ } $class->attribute_list( $meta );
  466         932  
25             }
26              
27              
28             sub attribute_list
29             {
30 30     30 1 89 my ($class, $meta) = @_;
31              
32 10     10   3140 no strict 'refs';
  10         21  
  10         1116  
33 30 100       116 ref $class and $class = ref $class;
34 30         69 my $array = '@ATTRS';
35 30         329 my $stash = Package::Stash->new( $class );
36 30 100       263 $stash->has_symbol( $array ) and return @{ $stash->get_symbol( $array ) };
  2         228  
37 28         144 my @attrs = grep { $_ ne 'meta' } $meta->get_attribute_list;
  476         1067  
38 28         206 $stash->add_symbol( $array, \@attrs );
39 28         136 @attrs;
40             }
41              
42              
43 10     10   425316 method delete ( App::Toodledo $todo! ) {
44             my $id = $self->id;
45             (my $type = lc ref $self) =~ s/.*://;
46             my $deleted_ref = $todo->call_func( $type => delete => { id => $id } );
47             $deleted_ref->[0]{id} == $id or $self->log->logdie("Did not get ID back from delete");
48             }
49              
50              
51             1;
52              
53             __END__
54              
55             =head1 NAME
56              
57             =head1 SYNOPSIS
58              
59             =head1 DESCRIPTION
60              
61             =head1 METHODS
62              
63             =head2 BUILD
64              
65             =head2 attribute_list
66              
67             =head2 internal_attributes
68              
69             =head2 delete
70              
71             =head1 AUTHOR
72              
73             Peter Scott C<cpan at psdt.com>
74              
75             =cut