File Coverage

blib/lib/Text/Template/Simple/Constants.pm
Criterion Covered Total %
statement 350 350 100.0
branch n/a
condition n/a
subroutine 117 117 100.0
pod n/a
total 467 467 100.0


line stmt bran cond sub pod time code
1             package Text::Template::Simple::Constants;
2 60     60   190 use strict;
  60         63  
  60         1238  
3 60     60   168 use warnings;
  60         65  
  60         2417  
4              
5             our $VERSION = '0.90';
6              
7             my($FIELD_ID);
8              
9 60     60   202 use constant RESET_FIELD => -1;
  60         420  
  60         3728  
10              
11             # object fields
12 60     60   1011 BEGIN { $FIELD_ID = RESET_FIELD } # init object field id counter
13 60     60   204 use constant DELIMITERS => ++$FIELD_ID;
  60         58  
  60         2389  
14 60     60   181 use constant AS_STRING => ++$FIELD_ID;
  60         68  
  60         2199  
15 60     60   185 use constant DELETE_WS => ++$FIELD_ID;
  60         58  
  60         2188  
16 60     60   191 use constant FAKER => ++$FIELD_ID;
  60         69  
  60         2164  
17 60     60   182 use constant FAKER_HASH => ++$FIELD_ID;
  60         54  
  60         2170  
18 60     60   211 use constant FAKER_SELF => ++$FIELD_ID;
  60         57  
  60         2263  
19 60     60   192 use constant FAKER_WARN => ++$FIELD_ID;
  60         66  
  60         2133  
20 60     60   182 use constant MONOLITH => ++$FIELD_ID;
  60         62  
  60         2087  
21 60     60   193 use constant CACHE => ++$FIELD_ID;
  60         54  
  60         1981  
22 60     60   172 use constant CACHE_DIR => ++$FIELD_ID;
  60         54  
  60         2135  
23 60     60   185 use constant CACHE_OBJECT => ++$FIELD_ID;
  60         44  
  60         2083  
24 60     60   177 use constant IO_OBJECT => ++$FIELD_ID;
  60         54  
  60         2060  
25 60     60   215 use constant STRICT => ++$FIELD_ID;
  60         58  
  60         2142  
26 60     60   176 use constant SAFE => ++$FIELD_ID;
  60         65  
  60         2081  
27 60     60   188 use constant HEADER => ++$FIELD_ID;
  60         63  
  60         2119  
28 60     60   182 use constant ADD_ARGS => ++$FIELD_ID;
  60         67  
  60         2037  
29 60     60   219 use constant CAPTURE_WARNINGS => ++$FIELD_ID;
  60         66  
  60         3022  
30 60     60   173 use constant WARN_IDS => ++$FIELD_ID;
  60         77  
  60         2018  
31 60     60   187 use constant TYPE => ++$FIELD_ID;
  60         57  
  60         2013  
32 60     60   169 use constant TYPE_FILE => ++$FIELD_ID;
  60         66  
  60         1981  
33 60     60   181 use constant COUNTER => ++$FIELD_ID;
  60         614  
  60         2095  
34 60     60   180 use constant COUNTER_INCLUDE => ++$FIELD_ID;
  60         63  
  60         1926  
35 60     60   174 use constant INSIDE_INCLUDE => ++$FIELD_ID;
  60         68  
  60         1999  
36 60     60   173 use constant NEEDS_OBJECT => ++$FIELD_ID;
  60         57  
  60         1995  
37 60     60   224 use constant CID => ++$FIELD_ID;
  60         81  
  60         2034  
38 60     60   177 use constant FILENAME => ++$FIELD_ID;
  60         54  
  60         2020  
39 60     60   176 use constant IOLAYER => ++$FIELD_ID;
  60         53  
  60         2016  
40 60     60   169 use constant STACK => ++$FIELD_ID;
  60         337  
  60         2870  
41 60     60   171 use constant USER_THANDLER => ++$FIELD_ID;
  60         330  
  60         2715  
42 60     60   817 use constant DEEP_RECURSION => ++$FIELD_ID;
  60         934  
  60         2888  
43 60     60   501 use constant INCLUDE_PATHS => ++$FIELD_ID;
  60         922  
  60         2008  
44 60     60   809 use constant PRE_CHOMP => ++$FIELD_ID;
  60         713  
  60         3693  
45 60     60   178 use constant POST_CHOMP => ++$FIELD_ID;
  60         316  
  60         2992  
46 60     60   1012 use constant VERBOSE_ERRORS => ++$FIELD_ID;
  60         695  
  60         3322  
47 60     60   182 use constant TAINT_MODE => ++$FIELD_ID;
  60         313  
  60         3951  
48 60     60   167 use constant MAXOBJFIELD => $FIELD_ID;
  60         878  
  60         1947  
49              
50             # token type ids
51 60     60   1474 BEGIN { $FIELD_ID = 0 }
52 60     60   462 use constant T_DELIMSTART => ++$FIELD_ID;
  60         49  
  60         2729  
53 60     60   176 use constant T_DELIMEND => ++$FIELD_ID;
  60         61  
  60         1858  
54 60     60   177 use constant T_DISCARD => ++$FIELD_ID;
  60         53  
  60         2495  
55 60     60   516 use constant T_COMMENT => ++$FIELD_ID;
  60         1331  
  60         2312  
56 60     60   458 use constant T_RAW => ++$FIELD_ID;
  60         643  
  60         2440  
57 60     60   183 use constant T_NOTADELIM => ++$FIELD_ID;
  60         770  
  60         3181  
58 60     60   168 use constant T_CODE => ++$FIELD_ID;
  60         45  
  60         1956  
59 60     60   173 use constant T_CAPTURE => ++$FIELD_ID;
  60         42  
  60         1983  
60 60     60   507 use constant T_DYNAMIC => ++$FIELD_ID;
  60         55  
  60         1891  
61 60     60   173 use constant T_STATIC => ++$FIELD_ID;
  60         55  
  60         1877  
62 60     60   165 use constant T_MAPKEY => ++$FIELD_ID;
  60         42  
  60         2217  
63 60     60   176 use constant T_COMMAND => ++$FIELD_ID;
  60         57  
  60         1937  
64 60     60   164 use constant T_MAXID => $FIELD_ID;
  60         76  
  60         1889  
65              
66             # settings
67 60     60   177 use constant MAX_RECURSION => 50; # recursion limit for dynamic includes
  60         51  
  60         2976  
68 60     60   194 use constant PARENT => ( __PACKAGE__ =~ m{ (.+?) ::Constants }xms );
  60         48  
  60         2797  
69 60     60   190 use constant IS_WINDOWS => $^O eq 'MSWin32';
  60         55  
  60         2201  
70 60     60   179 use constant DELIM_START => 0; # field id
  60         54  
  60         1933  
71 60     60   177 use constant DELIM_END => 1; # field id
  60         55  
  60         3306  
72 60     60   187 use constant RE_NONFILE => qr{ [ \n \r < > * ? ] }xmso;
  60         80  
  60         3592  
73 60         2552 use constant RE_DUMP_ERROR => qr{
74             \QCan't locate object method "first" via package "B::SVOP"\E
75 60     60   198 }xms;
  60         74  
76 60     60   192 use constant COMPILER => PARENT . '::Compiler';
  60         59  
  60         2311  
77 60     60   181 use constant COMPILER_SAFE => COMPILER . '::Safe';
  60         58  
  60         2167  
78 60     60   188 use constant DUMMY_CLASS => PARENT . '::Dummy';
  60         57  
  60         1967  
79 60     60   174 use constant MAX_FILENAME_LENGTH => 120;
  60         58  
  60         1934  
80 60     60   185 use constant CACHE_EXT => '.tts.cache';
  60         47  
  60         2079  
81 60     60   172 use constant STAT_SIZE => 7;
  60         47  
  60         1927  
82 60     60   979 use constant STAT_MTIME => 9;
  60         48  
  60         3478  
83 60     60   214 use constant DELIMS => qw( <% %> );
  60         59  
  60         2966  
84 60     60   188 use constant UNICODE_PERL => $] >= 5.008;
  60         63  
  60         2119  
85              
86 60     60   208 use constant CHOMP_NONE => 0x000000;
  60         61  
  60         2210  
87 60     60   176 use constant COLLAPSE_NONE => 0x000000;
  60         52  
  60         1950  
88 60     60   169 use constant CHOMP_ALL => 0x000002;
  60         52  
  60         2218  
89 60     60   172 use constant CHOMP_LEFT => 0x000004;
  60         54  
  60         1964  
90 60     60   170 use constant CHOMP_RIGHT => 0x000008;
  60         58  
  60         1907  
91 60     60   177 use constant COLLAPSE_LEFT => 0x000010;
  60         50  
  60         1954  
92 60     60   184 use constant COLLAPSE_RIGHT => 0x000020;
  60         57  
  60         1868  
93 60     60   172 use constant COLLAPSE_ALL => 0x000040;
  60         337  
  60         2530  
94              
95 60     60   189 use constant TAINT_CHECK_NORMAL => 0x000000;
  60         53  
  60         1849  
96 60     60   175 use constant TAINT_CHECK_ALL => 0x000002;
  60         45  
  60         1815  
97 60     60   173 use constant TAINT_CHECK_WINDOWS => 0x000004;
  60         46  
  60         1846  
98 60     60   166 use constant TAINT_CHECK_FH_READ => 0x000008;
  60         51  
  60         1966  
99              
100             # first level directives
101 60     60   177 use constant DIR_CAPTURE => q{=};
  60         51  
  60         1890  
102 60     60   170 use constant DIR_DYNAMIC => q{*};
  60         52  
  60         1978  
103 60     60   229 use constant DIR_STATIC => q{+};
  60         57  
  60         1841  
104 60     60   167 use constant DIR_NOTADELIM => q{!};
  60         46  
  60         1896  
105 60     60   178 use constant DIR_COMMENT => q{#};
  60         49  
  60         1971  
106 60     60   167 use constant DIR_COMMAND => q{|};
  60         49  
  60         1932  
107             # second level directives
108 60     60   174 use constant DIR_CHOMP => q{-};
  60         47  
  60         1901  
109 60     60   187 use constant DIR_COLLAPSE => q{~};
  60         56  
  60         1921  
110 60     60   171 use constant DIR_CHOMP_NONE => q{^};
  60         51  
  60         1905  
111              
112             # token related indexes
113 60     60   184 use constant TOKEN_STR => 0;
  60         46  
  60         1907  
114 60     60   174 use constant TOKEN_ID => 1;
  60         55  
  60         1975  
115 60     60   189 use constant TOKEN_CHOMP => 2;
  60         55  
  60         1875  
116 60     60   186 use constant TOKEN_TRIGGER => 3;
  60         59  
  60         1952  
117              
118 60     60   177 use constant TOKEN_CHOMP_NEXT => 0; # sub-key for TOKEN_CHOMP
  60         51  
  60         1996  
119 60     60   181 use constant TOKEN_CHOMP_PREV => 1; # sub-key for TOKEN_CHOMP
  60         48  
  60         2007  
120              
121 60     60   180 use constant LAST_TOKEN => -1;
  60         48  
  60         2043  
122 60     60   172 use constant PREVIOUS_TOKEN => -2;
  60         55  
  60         2033  
123              
124 60     60   189 use constant CACHE_PARENT => 0; # object id
  60         54  
  60         1942  
125 60     60   186 use constant CACHE_FMODE => 0600;
  60         53  
  60         2121  
126              
127 60     60   182 use constant EMPTY_STRING => q{};
  60         61  
  60         1926  
128              
129 60     60   184 use constant FMODE_GO_WRITABLE => 022;
  60         64  
  60         1965  
130 60     60   173 use constant FMODE_GO_READABLE => 066;
  60         59  
  60         1872  
131 60     60   165 use constant FTYPE_MASK => 07777;
  60         48  
  60         1857  
132              
133 60     60   164 use constant MAX_PATH_LENGTH => 255;
  60         53  
  60         1914  
134 60     60   168 use constant DEVEL_SIZE_VERSION => 0.72;
  60         52  
  60         1990  
135              
136 60     60   179 use constant DEBUG_LEVEL_NORMAL => 1;
  60         51  
  60         1955  
137 60     60   177 use constant DEBUG_LEVEL_VERBOSE => 2;
  60         48  
  60         2314  
138 60     60   181 use constant DEBUG_LEVEL_INSANE => 3;
  60         59  
  60         2533  
139              
140              
141             # SHA seems to be more accurate, so we'll try them first.
142             # Pure-Perl ones are slower, but they are fail-safes.
143             # However, Digest::SHA::PurePerl does not work under $perl < 5.6.
144             # But, Digest::Perl::MD5 seems to work under older perls (5.5.4 at least).
145 60         4349 use constant DIGEST_MODS => qw(
146             Digest::SHA
147             Digest::SHA1
148             Digest::SHA2
149             Digest::SHA::PurePerl
150             Digest::MD5
151             MD5
152             Digest::Perl::MD5
153 60     60   184 );
  60         54  
154              
155 60     60   219 use constant RE_PIPE_SPLIT => qr/ [|] (?:\s+)? (NAME|PARAM|FILTER|SHARE) : /xms;
  60         60  
  60         2980  
156 60     60   193 use constant RE_FILTER_SPLIT => qr/ \, (?:\s+)? /xms;
  60         60  
  60         3100  
157 60         2706 use constant RE_INVALID_CID =>
158 60     60   196 qr{[^A-Za-z_0-9]}xms; ## no critic (ProhibitEnumeratedClasses)
  60         61  
159              
160 60         2265 use constant DISK_CACHE_MARKER => q{# This file is automatically generated by }
161             . PARENT
162 60     60   191 ;
  60         59  
163              
164 60     60   191 use base qw( Exporter );
  60         75  
  60         15730  
165              
166             BEGIN {
167              
168 60     60   1171 our %EXPORT_TAGS = (
169             info => [qw(
170             UNICODE_PERL
171             IS_WINDOWS
172             COMPILER
173             COMPILER_SAFE
174             DUMMY_CLASS
175             MAX_FILENAME_LENGTH
176             CACHE_EXT
177             PARENT
178             )],
179             templates => [qw(
180             DISK_CACHE_MARKER
181             )],
182             delims => [qw(
183             DELIM_START
184             DELIM_END
185             DELIMS
186             )],
187             fields => [qw(
188             DELIMITERS
189             AS_STRING
190             DELETE_WS
191             FAKER
192             FAKER_HASH
193             FAKER_SELF
194             FAKER_WARN
195             CACHE
196             CACHE_DIR
197             CACHE_OBJECT
198             MONOLITH
199             IO_OBJECT
200             STRICT
201             SAFE
202             HEADER
203             ADD_ARGS
204             WARN_IDS
205             CAPTURE_WARNINGS
206             TYPE
207             TYPE_FILE
208             COUNTER
209             COUNTER_INCLUDE
210             INSIDE_INCLUDE
211             NEEDS_OBJECT
212             CID
213             FILENAME
214             IOLAYER
215             STACK
216             USER_THANDLER
217             DEEP_RECURSION
218             INCLUDE_PATHS
219             PRE_CHOMP
220             POST_CHOMP
221             VERBOSE_ERRORS
222             TAINT_MODE
223             MAXOBJFIELD
224             )],
225             chomp => [qw(
226             CHOMP_NONE
227             COLLAPSE_NONE
228             CHOMP_ALL
229             CHOMP_LEFT
230             CHOMP_RIGHT
231             COLLAPSE_LEFT
232             COLLAPSE_RIGHT
233             COLLAPSE_ALL
234             )],
235             directive => [qw(
236             DIR_CHOMP
237             DIR_COLLAPSE
238             DIR_CHOMP_NONE
239             DIR_CAPTURE
240             DIR_DYNAMIC
241             DIR_STATIC
242             DIR_NOTADELIM
243             DIR_COMMENT
244             DIR_COMMAND
245             )],
246             token => [qw(
247             TOKEN_ID
248             TOKEN_STR
249             TOKEN_CHOMP
250             TOKEN_TRIGGER
251             TOKEN_CHOMP_NEXT
252             TOKEN_CHOMP_PREV
253             LAST_TOKEN
254             PREVIOUS_TOKEN
255              
256             T_DELIMSTART
257             T_DELIMEND
258             T_DISCARD
259             T_COMMENT
260             T_RAW
261             T_NOTADELIM
262             T_CODE
263             T_CAPTURE
264             T_DYNAMIC
265             T_STATIC
266             T_MAPKEY
267             T_COMMAND
268             T_MAXID
269             )],
270             taint => [qw(
271             TAINT_CHECK_NORMAL
272             TAINT_CHECK_ALL
273             TAINT_CHECK_WINDOWS
274             TAINT_CHECK_FH_READ
275             )],
276             etc => [qw(
277             DIGEST_MODS
278             STAT_MTIME
279             RE_DUMP_ERROR
280             RE_PIPE_SPLIT
281             RE_FILTER_SPLIT
282             RE_NONFILE
283             RE_INVALID_CID
284             STAT_SIZE
285             MAX_RECURSION
286             CACHE_FMODE
287             CACHE_PARENT
288             RESET_FIELD
289             EMPTY_STRING
290             MAX_PATH_LENGTH
291             DEVEL_SIZE_VERSION
292             )],
293             fmode => [qw(
294             FMODE_GO_WRITABLE
295             FMODE_GO_READABLE
296             FTYPE_MASK
297             )],
298             debug => [qw(
299             DEBUG_LEVEL_NORMAL
300             DEBUG_LEVEL_VERBOSE
301             DEBUG_LEVEL_INSANE
302             )],
303             );
304              
305 60         206 our @EXPORT_OK = map { @{ $EXPORT_TAGS{$_} } } keys %EXPORT_TAGS;
  660         387  
  660         1932  
306 60         601 our @EXPORT = @EXPORT_OK;
307 60         1167 $EXPORT_TAGS{all} = \@EXPORT_OK;
308             }
309              
310             1;
311              
312             __END__
313              
314             =head1 NAME
315              
316             Text::Template::Simple::Constants - Constants
317              
318             =head1 SYNOPSIS
319              
320             TODO
321              
322             =head1 DESCRIPTION
323              
324             This document describes version C<0.90> of C<Text::Template::Simple::Constants>
325             released on C<5 July 2016>.
326              
327             Constants for Text::Template::Simple.
328              
329             =head1 AUTHOR
330              
331             Burak Gursoy <burak@cpan.org>.
332              
333             =head1 COPYRIGHT
334              
335             Copyright 2004 - 2016 Burak Gursoy. All rights reserved.
336              
337             =head1 LICENSE
338              
339             This library is free software; you can redistribute it and/or modify
340             it under the same terms as Perl itself, either Perl version 5.24.0 or,
341             at your option, any later version of Perl 5 you may have available.
342             =cut