File Coverage

blib/lib/Text/Template/Simple/Constants.pm
Criterion Covered Total %
statement 353 353 100.0
branch n/a
condition 1 3 33.3
subroutine 118 118 100.0
pod n/a
total 472 474 99.5


line stmt bran cond sub pod time code
1             package Text::Template::Simple::Constants;
2 62     62   402 use strict;
  62         121  
  62         3550  
3 62     62   431 use warnings;
  62         118  
  62         4390  
4              
5             our $VERSION = '0.86';
6              
7             my($OID, $DID);
8              
9 62     62   779 use constant RESET_FIELD => -1;
  62         124  
  62         6962  
10              
11             # object fields
12 62     62   1598 BEGIN { $OID = RESET_FIELD } # init object field id counter
13 62     62   564 use constant DELIMITERS => ++$OID;
  62         208  
  62         3945  
14 62     62   461 use constant AS_STRING => ++$OID;
  62         136  
  62         3963  
15 62     62   381 use constant DELETE_WS => ++$OID;
  62         799  
  62         3266  
16 62     62   337 use constant FAKER => ++$OID;
  62         486  
  62         4276  
17 62     62   537 use constant FAKER_HASH => ++$OID;
  62         128  
  62         3490  
18 62     62   368 use constant FAKER_SELF => ++$OID;
  62         121  
  62         3052  
19 62     62   316 use constant FAKER_WARN => ++$OID;
  62         169  
  62         4062  
20 62     62   359 use constant MONOLITH => ++$OID;
  62         136  
  62         2988  
21 62     62   359 use constant CACHE => ++$OID;
  62         117  
  62         3293  
22 62     62   485 use constant CACHE_DIR => ++$OID;
  62         140  
  62         4300  
23 62     62   372 use constant CACHE_OBJECT => ++$OID;
  62         128  
  62         2966  
24 62     62   330 use constant IO_OBJECT => ++$OID;
  62         147  
  62         3036  
25 62     62   313 use constant STRICT => ++$OID;
  62         107  
  62         3959  
26 62     62   320 use constant SAFE => ++$OID;
  62         135  
  62         3211  
27 62     62   505 use constant HEADER => ++$OID;
  62         108  
  62         3222  
28 62     62   309 use constant ADD_ARGS => ++$OID;
  62         125  
  62         3876  
29 62     62   324 use constant CAPTURE_WARNINGS => ++$OID;
  62         115  
  62         3103  
30 62     62   337 use constant WARN_IDS => ++$OID;
  62         143  
  62         3535  
31 62     62   358 use constant TYPE => ++$OID;
  62         131  
  62         3137  
32 62     62   381 use constant TYPE_FILE => ++$OID;
  62         123  
  62         3768  
33 62     62   352 use constant COUNTER => ++$OID;
  62         123  
  62         3890  
34 62     62   336 use constant COUNTER_INCLUDE => ++$OID;
  62         124  
  62         3291  
35 62     62   384 use constant INSIDE_INCLUDE => ++$OID;
  62         153  
  62         3348  
36 62     62   326 use constant NEEDS_OBJECT => ++$OID;
  62         132  
  62         5414  
37 62     62   354 use constant CID => ++$OID;
  62         119  
  62         3068  
38 62     62   349 use constant FILENAME => ++$OID;
  62         144  
  62         3141  
39 62     62   312 use constant IOLAYER => ++$OID;
  62         135  
  62         3405  
40 62     62   310 use constant STACK => ++$OID;
  62         121  
  62         3003  
41 62     62   529 use constant USER_THANDLER => ++$OID;
  62         119  
  62         3708  
42 62     62   330 use constant DEEP_RECURSION => ++$OID;
  62         116  
  62         3143  
43 62     62   321 use constant INCLUDE_PATHS => ++$OID;
  62         103  
  62         3751  
44 62     62   313 use constant PRE_CHOMP => ++$OID;
  62         163  
  62         7093  
45 62     62   332 use constant POST_CHOMP => ++$OID;
  62         143  
  62         3168  
46 62     62   379 use constant VERBOSE_ERRORS => ++$OID;
  62         118  
  62         2863  
47 62     62   370 use constant TAINT_MODE => ++$OID;
  62         105  
  62         2905  
48 62     62   312 use constant MAXOBJFIELD => $OID; # number of the last object field
  62         113  
  62         3052  
49              
50             # token type ids
51 62     62   5340 BEGIN { $DID = 0 }
52 62     62   322 use constant T_DELIMSTART => ++$DID;
  62         119  
  62         4488  
53 62     62   844 use constant T_DELIMEND => ++$DID;
  62         300  
  62         3520  
54 62     62   359 use constant T_DISCARD => ++$DID;
  62         114  
  62         3698  
55 62     62   329 use constant T_COMMENT => ++$DID;
  62         138  
  62         4786  
56 62     62   416 use constant T_RAW => ++$DID;
  62         155  
  62         3132  
57 62     62   598 use constant T_NOTADELIM => ++$DID;
  62         123  
  62         3124  
58 62     62   366 use constant T_CODE => ++$DID;
  62         136  
  62         3732  
59 62     62   463 use constant T_CAPTURE => ++$DID;
  62         111  
  62         3244  
60 62     62   322 use constant T_DYNAMIC => ++$DID;
  62         287  
  62         6299  
61 62     62   327 use constant T_STATIC => ++$DID;
  62         112  
  62         2974  
62 62     62   317 use constant T_MAPKEY => ++$DID;
  62         151  
  62         7734  
63 62     62   556 use constant T_COMMAND => ++$DID;
  62         161  
  62         3232  
64 62     62   430 use constant T_MAXID => $DID;
  62         148  
  62         8828  
65              
66             # settings
67 62     62   313 use constant MAX_RECURSION => 50; # recursion limit for dynamic includes
  62         145  
  62         5473  
68 62     62   330 use constant PARENT => ( __PACKAGE__ =~ m{ (.+?) ::Constants }xms );
  62         140  
  62         7210  
69 62   33 62   328 use constant IS_WINDOWS => $^O eq 'MSWin32' || $^O eq 'MSWin64';
  62         306  
  62         4089  
70 62     62   522 use constant DELIM_START => 0; # field id
  62         106  
  62         3628  
71 62     62   328 use constant DELIM_END => 1; # field id
  62         110  
  62         9855  
72 62     62   480 use constant RE_NONFILE => qr{ [ \n \r < > * ? ] }xmso;
  62         132  
  62         6681  
73 62     62   501 use constant RE_DUMP_ERROR => qr{Can\'t \s locate \s object \s method \s "first" \s via \s package \s "B::SVOP"}xms;
  62         132  
  62         4763  
74 62     62   331 use constant COMPILER => PARENT.'::Compiler'; # The compiler
  62         141  
  62         4250  
75 62     62   371 use constant COMPILER_SAFE => COMPILER.'::Safe'; # Safe compiler
  62         132  
  62         3641  
76 62     62   342 use constant DUMMY_CLASS => PARENT.'::Dummy'; # Dummy class
  62         124  
  62         4427  
77 62     62   1918 use constant MAX_FL => 120; # Maximum file name length
  62         123  
  62         3187  
78 62     62   352 use constant CACHE_EXT => '.tts.cache'; # disk cache extension
  62         137  
  62         3342  
79 62     62   333 use constant STAT_SIZE => 7; # for stat()
  62         166  
  62         2925  
80 62     62   537 use constant STAT_MTIME => 9; # for stat()
  62         207  
  62         4368  
81 62     62   349 use constant DELIMS => qw( <% %> ); # default delimiter pair
  62         125  
  62         7111  
82 62     62   515 use constant NEW_PERL => $] >= 5.008; # for I/O layer
  62         119  
  62         7818  
83 62     62   517 use constant IS_FLOCK => IS_WINDOWS ? ( Win32::IsWin95() ? 0 : 1 ) : 1;
  62         113  
  62         6892  
84              
85 62     62   2427 use constant CHOMP_NONE => 0x000000;
  62         164  
  62         2923  
86 62     62   345 use constant COLLAPSE_NONE => 0x000000;
  62         117  
  62         2801  
87 62     62   313 use constant CHOMP_ALL => 0x000002;
  62         106  
  62         3238  
88 62     62   339 use constant CHOMP_LEFT => 0x000004;
  62         127  
  62         15455  
89 62     62   456 use constant CHOMP_RIGHT => 0x000008;
  62         298  
  62         3002  
90 62     62   442 use constant COLLAPSE_LEFT => 0x000010;
  62         130  
  62         3090  
91 62     62   564 use constant COLLAPSE_RIGHT => 0x000020;
  62         112  
  62         3247  
92 62     62   390 use constant COLLAPSE_ALL => 0x000040;
  62         111  
  62         8459  
93              
94 62     62   1495 use constant TAINT_CHECK_NORMAL => 0x000000;
  62         112  
  62         2910  
95 62     62   330 use constant TAINT_CHECK_ALL => 0x000002;
  62         152  
  62         15945  
96 62     62   535 use constant TAINT_CHECK_WINDOWS => 0x000004;
  62         128  
  62         3490  
97 62     62   350 use constant TAINT_CHECK_FH_READ => 0x000008;
  62         178  
  62         3639  
98              
99             # first level directives
100 62     62   354 use constant DIR_CAPTURE => q{=};
  62         160  
  62         3398  
101 62     62   357 use constant DIR_DYNAMIC => q{*};
  62         130  
  62         2848  
102 62     62   371 use constant DIR_STATIC => q{+};
  62         120  
  62         3396  
103 62     62   432 use constant DIR_NOTADELIM => q{!};
  62         139  
  62         3097  
104 62     62   336 use constant DIR_COMMENT => q{#};
  62         151  
  62         3123  
105 62     62   319 use constant DIR_COMMAND => q{|};
  62         120  
  62         3296  
106             # second level directives
107 62     62   333 use constant DIR_CHOMP => q{-};
  62         142  
  62         3164  
108 62     62   368 use constant DIR_COLLAPSE => q{~};
  62         128  
  62         5438  
109 62     62   338 use constant DIR_CHOMP_NONE => q{^};
  62         137  
  62         3200  
110              
111             # token related indexes
112 62     62   338 use constant TOKEN_STR => 0;
  62         114  
  62         18939  
113 62     62   331 use constant TOKEN_ID => 1;
  62         205  
  62         3176  
114 62     62   368 use constant TOKEN_CHOMP => 2;
  62         127  
  62         3115  
115 62     62   315 use constant TOKEN_TRIGGER => 3;
  62         300  
  62         6139  
116              
117 62     62   339 use constant TOKEN_CHOMP_NEXT => 0; # sub-key for TOKEN_CHOMP
  62         112  
  62         2897  
118 62     62   430 use constant TOKEN_CHOMP_PREV => 1; # sub-key for TOKEN_CHOMP
  62         121  
  62         3510  
119              
120 62     62   948 use constant LAST_TOKEN => -1;
  62         133  
  62         3258  
121 62     62   445 use constant PREVIOUS_TOKEN => -2;
  62         134  
  62         2945  
122              
123 62     62   393 use constant CACHE_PARENT => 0; # object id
  62         128  
  62         3703  
124 62     62   336 use constant CACHE_FMODE => 0600;
  62         125  
  62         2975  
125              
126 62     62   350 use constant EMPTY_STRING => q{};
  62         128  
  62         2946  
127              
128 62     62   2327 use constant FMODE_GO_WRITABLE => 022;
  62         171  
  62         3118  
129 62     62   378 use constant FMODE_GO_READABLE => 066;
  62         133  
  62         2953  
130 62     62   349 use constant FTYPE_MASK => 07777;
  62         232  
  62         3801  
131              
132 62     62   344 use constant MAX_PATH_LENGTH => 255;
  62         144  
  62         3204  
133 62     62   327 use constant DEVEL_SIZE_VERSION => 0.72;
  62         165  
  62         2950  
134              
135 62     62   319 use constant DEBUG_LEVEL_NORMAL => 1;
  62         129  
  62         5012  
136 62     62   332 use constant DEBUG_LEVEL_VERBOSE => 2;
  62         239  
  62         3067  
137 62     62   336 use constant DEBUG_LEVEL_INSANE => 3;
  62         223  
  62         4236  
138              
139              
140             # SHA seems to be more accurate, so we'll try them first.
141             # Pure-Perl ones are slower, but they are fail-safes.
142             # However, Digest::SHA::PurePerl does not work under $perl < 5.6.
143             # But, Digest::Perl::MD5 seems to work under older perls (5.5.4 at least).
144 62         7604 use constant DIGEST_MODS => qw(
145             Digest::SHA
146             Digest::SHA1
147             Digest::SHA2
148             Digest::SHA::PurePerl
149             Digest::MD5
150             MD5
151             Digest::Perl::MD5
152 62     62   326 );
  62         125  
153              
154 62     62   341 use constant RE_PIPE_SPLIT => qr/ [|] (?:\s+)? (NAME|PARAM|FILTER|SHARE) : /xms;
  62         103  
  62         5544  
155 62     62   397 use constant RE_FILTER_SPLIT => qr/ \, (?:\s+)? /xms;
  62         192  
  62         6842  
156 62         4683 use constant RE_INVALID_CID =>
157 62     62   346 qr{[^A-Za-z_0-9]}xms; ## no critic (ProhibitEnumeratedClasses)
  62         169  
158              
159 62         3193 use constant DISK_CACHE_MARKER => q{# This file is automatically generated by }
160             . PARENT
161 62     62   356 ;
  62         165  
162              
163 62     62   353 use base qw( Exporter );
  62         119  
  62         31485  
164              
165             BEGIN {
166              
167 62     62   6736 our %EXPORT_TAGS = (
168             info => [qw(
169             IS_FLOCK
170             NEW_PERL
171             IS_WINDOWS
172             COMPILER
173             COMPILER_SAFE
174             DUMMY_CLASS
175             MAX_FL
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 62         347 our @EXPORT_OK = map { @{ $EXPORT_TAGS{$_} } } keys %EXPORT_TAGS;
  682         748  
  682         4020  
306 62         493 $EXPORT_TAGS{all} = \@EXPORT_OK;
307 62         3873 our @EXPORT = @EXPORT_OK;
308              
309             }
310              
311             1;
312              
313             __END__
314              
315             =head1 NAME
316              
317             Text::Template::Simple::Constants - Constants
318              
319             =head1 SYNOPSIS
320              
321             TODO
322              
323             =head1 DESCRIPTION
324              
325             This document describes version C<0.86> of C<Text::Template::Simple::Constants>
326             released on C<5 March 2012>.
327              
328             Constants for Text::Template::Simple.
329              
330             =head1 AUTHOR
331              
332             Burak Gursoy <burak@cpan.org>.
333              
334             =head1 COPYRIGHT
335              
336             Copyright 2004 - 2012 Burak Gursoy. All rights reserved.
337              
338             =head1 LICENSE
339              
340             This library is free software; you can redistribute it and/or modify
341             it under the same terms as Perl itself, either Perl version 5.12.3 or,
342             at your option, any later version of Perl 5 you may have available.
343              
344             =cut