File Coverage

blib/lib/CSS/DOM/Constants.pm
Criterion Covered Total %
statement 21 21 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 26 26 100.0


line stmt bran cond sub pod time code
1             package CSS::DOM::Constants;
2              
3             $VERSION = '0.17';
4              
5 29     29   112182 use Exporter 5.57 'import';
  29         492  
  29         1639  
6              
7             my $exception_constants;
8 29         5645 use constant 1.03 $exception_constants = {
9             # DOMException:
10             INDEX_SIZE_ERR => 1,
11             DOMSTRING_SIZE_ERR => 2,
12             HIERARCHY_REQUEST_ERR => 3,
13             WRONG_DOCUMENT_ERR => 4,
14             INVALID_CHARACTER_ERR => 5,
15             NO_DATA_ALLOWED_ERR => 6,
16             NO_MODIFICATION_ALLOWED_ERR => 7,
17             NOT_FOUND_ERR => 8,
18             NOT_SUPPORTED_ERR => 9,
19             INUSE_ATTRIBUTE_ERR => 10,
20             INVALID_STATE_ERR => 11,
21             SYNTAX_ERR => 12,
22             INVALID_MODIFICATION_ERR => 13,
23             NAMESPACE_ERR => 14,
24             INVALID_ACCESS_ERR => 15,
25              
26             ## EventException:
27             # UNSPECIFIED_EVENT_TYPE_ERR => 0,
28              
29              
30 29     29   139 };
  29         426  
31              
32             my @rule_constants;
33 29         54 use constant do {
34 29         43 my $x = 0;
35 29         3459 +{ map +($_ => $x++), @rule_constants = qw/
36             UNKNOWN_RULE
37             STYLE_RULE
38             CHARSET_RULE
39             IMPORT_RULE
40             MEDIA_RULE
41             FONT_FACE_RULE
42             PAGE_RULE
43             / }
44 29     29   174 };
  29         61  
45              
46             my @val_constants;
47 29         56 use constant do {
48 29         74 my $x = 0;
49 29         3298 +{ map +($_ => $x++), @val_constants = qw/
50             CSS_INHERIT
51             CSS_PRIMITIVE_VALUE
52             CSS_VALUE_LIST
53             CSS_CUSTOM
54             /}
55 29     29   190 };
  29         49  
56              
57             my @prim_constants;
58 29         38 use constant do {
59 29         55 my $x = 0;
60 29         10006 +{ map +($_ => $x++), @ prim_constants = qw/
61             CSS_UNKNOWN
62             CSS_NUMBER
63             CSS_PERCENTAGE
64             CSS_EMS
65             CSS_EXS
66             CSS_PX
67             CSS_CM
68             CSS_MM
69             CSS_IN
70             CSS_PT
71             CSS_PC
72             CSS_DEG
73             CSS_RAD
74             CSS_GRAD
75             CSS_MS
76             CSS_S
77             CSS_HZ
78             CSS_KHZ
79             CSS_DIMENSION
80             CSS_STRING
81             CSS_URI
82             CSS_IDENT
83             CSS_ATTR
84             CSS_COUNTER
85             CSS_RECT
86             CSS_RGBCOLOR
87             /}
88 29     29   167 };
  29         37  
89              
90             our %EXPORT_TAGS = (
91             exception => [keys %$exception_constants],
92             rule => \@rule_constants,
93             value => \@val_constants,
94             primitive => \@prim_constants,
95             );
96             our @EXPORT_OK = ('%SuffixToConst', map @$_, values %EXPORT_TAGS);
97             $EXPORT_TAGS{all} = \@EXPORT_OK;
98              
99             {package
100             CSS::DOM::Exception;
101             CSS::DOM::Constants->import(':exception');
102             package
103             CSS::DOM::Rule;
104             CSS::DOM::Constants->import(':rule');
105             package
106             CSS::DOM::Value;
107             CSS::DOM::Constants->import(':value');
108             package
109             CSS::DOM::Value::Primitive;
110             CSS::DOM::Constants->import(':primitive');
111             }
112              
113             %SuffixToConst = ( # dimension suffix -> CSSPrimitiveValue type constant
114             'em' => CSS_EMS,
115             'ex' => CSS_EXS,
116             'px' => CSS_PX,
117             'cm' => CSS_CM,
118             'mm' => CSS_MM,
119             'in' => CSS_IN,
120             'pt' => CSS_PT,
121             'pc' => CSS_PC,
122             deg => CSS_DEG,
123             rad => CSS_RAD,
124             grad => CSS_GRAD,
125             'ms' => CSS_MS,
126             's' => CSS_S,
127             'hz' => CSS_HZ,
128             khz => CSS_KHZ,
129             );
130              
131             !()__END__()!
132              
133             =head1 NAME
134              
135             CSS::DOM::Constants - Constants for CSS::DOM
136              
137             =head1 VERSION
138              
139             Version 0.17
140              
141             =head1 SYNOPSIS
142              
143             use CSS::DOM::Constants ':all';
144            
145             # or
146            
147             use CSS::DOM::Constants ':rule';
148            
149             # or individually
150            
151             use CSS::DOM::Constants 'SYNTAX_ERR', ...;
152              
153             =head1 DESCRIPTION
154              
155             This module provides all the constants used by
156             L.
157              
158             =head1 EXPORTS
159              
160             You can import individual constants by name, or all of them with the ':all'
161             tag. In addition, you can specify one of the following tags, to import a
162             group of constants (which can also be imported from other CSS::DOM
163             modules):
164              
165             =over
166              
167             =item :exception
168              
169             All the constants listed under L.
170              
171             =item :rule
172              
173             All the constants listed under L.
174              
175             =item :value
176              
177             All the constants listed under L.
178              
179             =item :primitive
180              
181             All the constants listed under L.
182              
183             =back
184              
185             There is also a C<%SuffixToConst> hash which maps dimension suffixes (such
186             as 'px'; all lowercase) to CSSPrimitiveValue type constants (such as
187             C). This is included in the
188             ':all' tag.
189              
190             =head1 SEE ALSO
191              
192             L
193              
194             L
195              
196             L