File Coverage

blib/lib/Data/Object/Autobox.pm
Criterion Covered Total %
statement 24 24 100.0
branch 6 6 100.0
condition 3 6 50.0
subroutine 6 6 100.0
pod n/a
total 39 42 92.8


line stmt bran cond sub pod time code
1             # ABSTRACT: An Autobox Implementation for Perl 5
2             package Data::Object::Autobox;
3              
4 2     2   32874 use 5.010;
  2         6  
  2         74  
5              
6 2     2   8 use strict;
  2         2  
  2         54  
7 2     2   7 use warnings;
  2         6  
  2         53  
8              
9 2     2   7 use base 'autobox';
  2         2  
  2         941  
10 2     2   15026 use Data::Object 'load';
  2         3801  
  2         642  
11              
12             our $VERSION = '0.13'; # VERSION
13              
14             sub import {
15 2     2   18 my $class = shift;
16 2         4 my $param = shift;
17              
18 2         7 my ($default, %options) = ('composite', @_);
19 2 100       13 my ($flavor) = $param =~ /^[-:](autoload|composite|custom)$/ if $param;
20              
21 2 100 33     15 $flavor = $default if ! $flavor
      66        
22             or $flavor eq 'custom' and ! keys %options;
23              
24 2 100       7 unless (lc $flavor eq 'custom') {
25 1         6 %options = (
26             ARRAY => load "${class}::\u${flavor}::Array",
27             CODE => load "${class}::\u${flavor}::Code",
28             FLOAT => load "${class}::\u${flavor}::Float",
29             HASH => load "${class}::\u${flavor}::Hash",
30             INTEGER => load "${class}::\u${flavor}::Integer",
31             NUMBER => load "${class}::\u${flavor}::Number",
32             SCALAR => load "${class}::\u${flavor}::Scalar",
33             STRING => load "${class}::\u${flavor}::String",
34             UNDEF => load "${class}::\u${flavor}::Undef",
35             UNIVERSAL => load "${class}::\u${flavor}::Universal",
36             );
37             }
38              
39 2         52 $class->SUPER::import(%options);
40              
41 2         2094 return;
42             }
43              
44             1;
45              
46             __END__