File Coverage

blib/lib/PPI/Token/Quote/Single.pm
Criterion Covered Total %
statement 15 15 100.0
branch 2 2 100.0
condition n/a
subroutine 5 5 100.0
pod 2 2 100.0
total 24 24 100.0


line stmt bran cond sub pod time code
1             package PPI::Token::Quote::Single;
2              
3             =pod
4              
5             =head1 NAME
6              
7             PPI::Token::Quote::Single - A 'single quote' token
8              
9             =head1 INHERITANCE
10              
11             PPI::Token::Quote::Single
12             isa PPI::Token::Quote
13             isa PPI::Token
14             isa PPI::Element
15              
16             =head1 SYNOPSIS
17              
18             'This is a single quote'
19            
20             q{This is a literal, but NOT a single quote}
21              
22             =head1 DESCRIPTION
23              
24             A C<PPI::Token::Quote::Single> object represents a single quoted string
25             literal.
26              
27             =head1 METHODS
28              
29             There are no methods available for C<PPI::Token::Quote::Single> beyond
30             those provided by the parent L<PPI::Token::Quote>, L<PPI::Token> and
31             L<PPI::Element> classes.
32              
33             =cut
34              
35 67     67   344 use strict;
  67         98  
  67         1861  
36 67     67   23457 use PPI::Token::Quote ();
  67         177  
  67         1104  
37 67     67   23878 use PPI::Token::_QuoteEngine::Simple ();
  67         139  
  67         11354  
38              
39             our $VERSION = '1.284';
40              
41             our @ISA = qw{
42             PPI::Token::_QuoteEngine::Simple
43             PPI::Token::Quote
44             };
45              
46              
47              
48              
49              
50             #####################################################################
51             # PPI::Token::Quote Methods
52              
53             sub string {
54 2463     2463 1 11960 my $str = $_[0]->{content};
55 2463         7313 substr( $str, 1, length($str) - 2 );
56             }
57              
58              
59             my %UNESCAPE = (
60             "\\'" => "'",
61             "\\\\" => "\\",
62             );
63              
64             sub literal {
65             # Unescape \\ and \' ONLY
66 13     13 1 2080 my $str = $_[0]->string;
67 13 100       46 $str =~ s/(\\.)/$UNESCAPE{$1} || $1/ge;
  7         31  
68 13         43 return $str;
69             }
70              
71             1;
72              
73             =pod
74              
75             =head1 SUPPORT
76              
77             See the L<support section|PPI/SUPPORT> in the main module.
78              
79             =head1 AUTHOR
80              
81             Adam Kennedy E<lt>adamk@cpan.orgE<gt>
82              
83             =head1 COPYRIGHT
84              
85             Copyright 2001 - 2011 Adam Kennedy.
86              
87             This program is free software; you can redistribute
88             it and/or modify it under the same terms as Perl itself.
89              
90             The full text of the license can be found in the
91             LICENSE file included with this module.
92              
93             =cut