File Coverage

blib/lib/Digest/Mock/Size.pm
Criterion Covered Total %
statement 15 39 38.4
branch 0 6 0.0
condition n/a
subroutine 5 13 38.4
pod 8 8 100.0
total 28 66 42.4


line stmt bran cond sub pod time code
1             package Digest::Mock::Size;
2              
3 1     1   35690 use 5.10.0;
  1         5  
  1         47  
4 1     1   6 use strict;
  1         2  
  1         33  
5 1     1   5 use warnings;
  1         7  
  1         45  
6 1     1   1050 use parent 'Digest::base';
  1         318  
  1         5  
7              
8             sub _buffer {
9             my $self = shift;
10             my $buf = $self->{_buffer} ||= [];
11             return wantarray? @{ $buf } : $buf;
12             }
13              
14 1     1   1930 use namespace::clean;
  1         31547  
  1         7  
15              
16             =head1 NAME
17              
18             Digest::Mock::Size - Mock digest interface to return size of message
19              
20             =head1 VERSION
21              
22             Version 0.01
23              
24             =cut
25              
26             our $VERSION = '0.01_1';
27              
28              
29             =head1 SYNOPSIS
30              
31             See L module.
32              
33             =head1 METHODS
34              
35             =head2 new
36              
37             A very simple constructor
38              
39             =cut
40              
41 0     0 1   sub new { return bless {}, shift; }
42              
43             =head2 clone
44              
45             Clone the digest object
46              
47             =cut
48              
49             sub clone {
50 0     0 1   my $self = shift;
51 0           return bless { %{ $self } }, ref( $self );
  0            
52             }
53              
54             =head2 reset
55              
56             Reset the message buffer
57              
58             =cut
59              
60             sub reset {
61 0     0 1   my $self = shift;
62            
63 0           @{ $self->_buffer } = ();
  0            
64            
65 0           return $self;
66             }
67              
68             =head2 message
69              
70             Returns digest message buffer
71              
72             =cut
73              
74             sub message {
75 0     0 1   my $self = shift;
76 0 0         return wantarray? @{ $self->_buffer } : join '', @{ $self->_buffer };
  0            
  0            
77             }
78              
79             =head2 reset_with_message
80              
81             Returns the message buffer and resets it
82              
83             =cut
84              
85             sub reset_with_message {
86 0     0 1   my $self = shift;
87 0           my $msg = $self->message;
88            
89 0           $self->reset;
90            
91 0           return $msg;
92             }
93              
94             =head2 add
95              
96             Add data to the digest message buffer
97              
98             =cut
99              
100             sub add {
101 0     0 1   my $self = shift;
102            
103 0 0         push @{ $self->_buffer }, @_ if @_;
  0            
104            
105 0           return $self;
106             }
107              
108             =head2 size RESET
109              
110             Returns the size of the message
111             If boolean RESET is true it will reset the message buffer
112              
113             =cut
114              
115             sub size {
116 0     0 1   my $self = shift;
117 0 0         return length shift()?
118             $self->message_and_reset :
119             $self->message;
120             }
121              
122             =head2 digest
123              
124             Returns packed size of message and resets as per interface spec
125             B: this is the length of the message prior to any digesting
126              
127             =cut
128              
129             sub digest {
130 0     0 1   my $self = shift;
131 0           return pack 'N*', $self->size(1);
132             }
133              
134             =head1 AUTHOR
135              
136             Jason M Mills, C<< >>
137              
138             =head1 BUGS
139              
140             Please report any bugs or feature requests to C, or through
141             the web interface at L. I will be notified, and then you'll
142             automatically be notified of progress on your bug as I make changes.
143              
144              
145              
146              
147             =head1 SUPPORT
148              
149             You can find documentation for this module with the perldoc command.
150              
151             perldoc Digest::Mock::Size
152              
153              
154             You can also look for information at:
155              
156             =over 4
157              
158             =item * RT: CPAN's request tracker (report bugs here)
159              
160             L
161              
162             =item * AnnoCPAN: Annotated CPAN documentation
163              
164             L
165              
166             =item * CPAN Ratings
167              
168             L
169              
170             =item * Search CPAN
171              
172             L
173              
174             =back
175              
176              
177             =head1 ACKNOWLEDGEMENTS
178              
179              
180             =head1 LICENSE AND COPYRIGHT
181              
182             Copyright 2011 Jason M Mills.
183              
184             This program is free software; you can redistribute it and/or modify it
185             under the terms of either: the GNU General Public License as published
186             by the Free Software Foundation; or the Artistic License.
187              
188             See http://dev.perl.org/licenses/ for more information.
189              
190              
191             =cut
192              
193             1; # End of Digest::Mock::Size