File Coverage

blib/lib/Plack/Util/Accessor.pm
Criterion Covered Total %
statement 19 19 100.0
branch 4 6 66.6
condition n/a
subroutine 6 6 100.0
pod 0 1 0.0
total 29 32 90.6


line stmt bran cond sub pod time code
1             package Plack::Util::Accessor;
2 118     118   527 use strict;
  118         254  
  118         3722  
3 118     118   406 use warnings;
  118         227  
  118         12543  
4              
5             sub import {
6 232     232   406 shift;
7 232 50       807 return unless @_;
8 232         472 my $package = caller();
9 232         637 mk_accessors( $package, @_ );
10             }
11              
12             sub mk_accessors {
13 232     232 0 298 my $package = shift;
14 118     118   541 no strict 'refs';
  118         1716  
  118         16807  
15 232         517 foreach my $field ( @_ ) {
16 391         27264 *{ $package . '::' . $field } = sub {
17 1712 100   1712   24318 return $_[0]->{ $field } if scalar( @_ ) == 1;
18 92 50       377 return $_[0]->{ $field } = scalar( @_ ) == 2 ? $_[1] : [ @_[1..$#_] ];
19 391         1411 };
20             }
21             }
22              
23             1;
24              
25             __END__