File Coverage

blib/lib/Template/Stash/Encode.pm
Criterion Covered Total %
statement 25 25 100.0
branch 3 6 50.0
condition 2 6 33.3
subroutine 7 7 100.0
pod 2 2 100.0
total 39 46 84.7


line stmt bran cond sub pod time code
1             package Template::Stash::Encode;
2              
3 4     4   9592 use strict;
  4         10  
  4         150  
4 4     4   24 use warnings;
  4         9  
  4         124  
5              
6 4     4   4133 use Encode;
  4         45291  
  4         336  
7 4     4   1865 use Template::Config;
  4         2888  
  4         118  
8              
9 4     4   27 use base $Template::Config::STASH;
  4         7  
  4         31  
10              
11             =head1 NAME
12              
13             Template::Stash::Encode - Encode charactor code on stash variables
14              
15             =head1 VERSION
16              
17             Version 0.03
18              
19             =cut
20              
21             our $VERSION = '0.03';
22              
23             =head1 SYNOPSIS
24              
25             use Template::Stash::Encode;
26             use Template;
27              
28             my Template $tt = Template->new(
29             STASH => Template::Stash::Encode->new(icode => 'utf8', ocode => 'shiftjis')
30             );
31              
32             =head1 METHODS
33              
34             =head2 new
35              
36             Constructor (See L).
37             See below constructor parameter of hash reference.
38              
39             =over 2
40              
41             =item icode
42              
43             Input charactor code. (See L)
44              
45             =item ocode
46              
47             Output charactor code. (See L)
48              
49             =back
50              
51             =cut
52              
53             sub new {
54 2     2 1 35 my $class = shift;
55 2         39 my $self = $class->SUPER::new(@_);
56            
57 2 50 33     81 $self->{icode} = 'utf8' unless (exists $self->{icode} && $self->{icode});
58 2 50 33     31 $self->{ocode} = 'utf8' unless (exists $self->{ocode} && $self->{ocode});
59            
60 2         29 return $self;
61             }
62              
63             =head2 get
64              
65             Override method.
66              
67             =cut
68              
69             sub get {
70 4     4 1 57447 my $self = shift;
71 4         106 my $result = $self->SUPER::get(@_);
72 4 50       41 return $result if (ref $result);
73            
74 4         30 Encode::from_to($result, $self->{icode}, $self->{ocode});
75 4         27909 return $result;
76             }
77              
78             =head1 SEE ALSO
79              
80             L