HTML-AutoTag 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Changes +3 -0
- data/README +2 -2
- data/lib/HTML/AutoTag/version.rb +1 -1
- data/lib/HTML/Encoder/Unicode.rb +182 -0
- data/lib/HTML/Encoder.rb +18 -159
- data/t/01-load.rb +5 -0
- data/t/05-encode.rb +55 -3
- metadata +68 -47
- checksums.yaml +0 -7
data/Changes
CHANGED
data/README
CHANGED
@@ -35,8 +35,8 @@ Also includes HTML::AutoAttr which provides rotating attributes:
|
|
35
35
|
With the exception of new, all methods return an HTML table as a string.
|
36
36
|
|
37
37
|
* new( params )
|
38
|
-
* encodes=(
|
39
|
-
Encode HTML entities
|
38
|
+
* encodes=(string)
|
39
|
+
Encode HTML entities. Pass empty string for default HTML entity encoding or a string with chars you want encoded.
|
40
40
|
* indent=(string)
|
41
41
|
Pretty print results.
|
42
42
|
* level=(integer)
|
data/lib/HTML/AutoTag/version.rb
CHANGED
@@ -0,0 +1,182 @@
|
|
1
|
+
module HTML
|
2
|
+
|
3
|
+
class Encoder
|
4
|
+
|
5
|
+
class Unicode
|
6
|
+
|
7
|
+
def self.unicode_mapping
|
8
|
+
|
9
|
+
return {
|
10
|
+
'OElig' => 338.chr(Encoding::UTF_8),
|
11
|
+
'oelig' => 339.chr(Encoding::UTF_8),
|
12
|
+
'Scaron' => 352.chr(Encoding::UTF_8),
|
13
|
+
'scaron' => 353.chr(Encoding::UTF_8),
|
14
|
+
'Yuml' => 376.chr(Encoding::UTF_8),
|
15
|
+
'fnof' => 402.chr(Encoding::UTF_8),
|
16
|
+
'circ' => 710.chr(Encoding::UTF_8),
|
17
|
+
'tilde' => 732.chr(Encoding::UTF_8),
|
18
|
+
'Alpha' => 913.chr(Encoding::UTF_8),
|
19
|
+
'Beta' => 914.chr(Encoding::UTF_8),
|
20
|
+
'Gamma' => 915.chr(Encoding::UTF_8),
|
21
|
+
'Delta' => 916.chr(Encoding::UTF_8),
|
22
|
+
'Epsilon' => 917.chr(Encoding::UTF_8),
|
23
|
+
'Zeta' => 918.chr(Encoding::UTF_8),
|
24
|
+
'Eta' => 919.chr(Encoding::UTF_8),
|
25
|
+
'Theta' => 920.chr(Encoding::UTF_8),
|
26
|
+
'Iota' => 921.chr(Encoding::UTF_8),
|
27
|
+
'Kappa' => 922.chr(Encoding::UTF_8),
|
28
|
+
'Lambda' => 923.chr(Encoding::UTF_8),
|
29
|
+
'Mu' => 924.chr(Encoding::UTF_8),
|
30
|
+
'Nu' => 925.chr(Encoding::UTF_8),
|
31
|
+
'Xi' => 926.chr(Encoding::UTF_8),
|
32
|
+
'Omicron' => 927.chr(Encoding::UTF_8),
|
33
|
+
'Pi' => 928.chr(Encoding::UTF_8),
|
34
|
+
'Rho' => 929.chr(Encoding::UTF_8),
|
35
|
+
'Sigma' => 931.chr(Encoding::UTF_8),
|
36
|
+
'Tau' => 932.chr(Encoding::UTF_8),
|
37
|
+
'Upsilon' => 933.chr(Encoding::UTF_8),
|
38
|
+
'Phi' => 934.chr(Encoding::UTF_8),
|
39
|
+
'Chi' => 935.chr(Encoding::UTF_8),
|
40
|
+
'Psi' => 936.chr(Encoding::UTF_8),
|
41
|
+
'Omega' => 937.chr(Encoding::UTF_8),
|
42
|
+
'alpha' => 945.chr(Encoding::UTF_8),
|
43
|
+
'beta' => 946.chr(Encoding::UTF_8),
|
44
|
+
'gamma' => 947.chr(Encoding::UTF_8),
|
45
|
+
'delta' => 948.chr(Encoding::UTF_8),
|
46
|
+
'epsilon' => 949.chr(Encoding::UTF_8),
|
47
|
+
'zeta' => 950.chr(Encoding::UTF_8),
|
48
|
+
'eta' => 951.chr(Encoding::UTF_8),
|
49
|
+
'theta' => 952.chr(Encoding::UTF_8),
|
50
|
+
'iota' => 953.chr(Encoding::UTF_8),
|
51
|
+
'kappa' => 954.chr(Encoding::UTF_8),
|
52
|
+
'lambda' => 955.chr(Encoding::UTF_8),
|
53
|
+
'mu' => 956.chr(Encoding::UTF_8),
|
54
|
+
'nu' => 957.chr(Encoding::UTF_8),
|
55
|
+
'xi' => 958.chr(Encoding::UTF_8),
|
56
|
+
'omicron' => 959.chr(Encoding::UTF_8),
|
57
|
+
'pi' => 960.chr(Encoding::UTF_8),
|
58
|
+
'rho' => 961.chr(Encoding::UTF_8),
|
59
|
+
'sigmaf' => 962.chr(Encoding::UTF_8),
|
60
|
+
'sigma' => 963.chr(Encoding::UTF_8),
|
61
|
+
'tau' => 964.chr(Encoding::UTF_8),
|
62
|
+
'upsilon' => 965.chr(Encoding::UTF_8),
|
63
|
+
'phi' => 966.chr(Encoding::UTF_8),
|
64
|
+
'chi' => 967.chr(Encoding::UTF_8),
|
65
|
+
'psi' => 968.chr(Encoding::UTF_8),
|
66
|
+
'omega' => 969.chr(Encoding::UTF_8),
|
67
|
+
'thetasym' => 977.chr(Encoding::UTF_8),
|
68
|
+
'upsih' => 978.chr(Encoding::UTF_8),
|
69
|
+
'piv' => 982.chr(Encoding::UTF_8),
|
70
|
+
'ensp' => 8194.chr(Encoding::UTF_8),
|
71
|
+
'emsp' => 8195.chr(Encoding::UTF_8),
|
72
|
+
'thinsp' => 8201.chr(Encoding::UTF_8),
|
73
|
+
'zwnj' => 8204.chr(Encoding::UTF_8),
|
74
|
+
'zwj' => 8205.chr(Encoding::UTF_8),
|
75
|
+
'lrm' => 8206.chr(Encoding::UTF_8),
|
76
|
+
'rlm' => 8207.chr(Encoding::UTF_8),
|
77
|
+
'ndash' => 8211.chr(Encoding::UTF_8),
|
78
|
+
'mdash' => 8212.chr(Encoding::UTF_8),
|
79
|
+
'lsquo' => 8216.chr(Encoding::UTF_8),
|
80
|
+
'rsquo' => 8217.chr(Encoding::UTF_8),
|
81
|
+
'sbquo' => 8218.chr(Encoding::UTF_8),
|
82
|
+
'ldquo' => 8220.chr(Encoding::UTF_8),
|
83
|
+
'rdquo' => 8221.chr(Encoding::UTF_8),
|
84
|
+
'bdquo' => 8222.chr(Encoding::UTF_8),
|
85
|
+
'dagger' => 8224.chr(Encoding::UTF_8),
|
86
|
+
'Dagger' => 8225.chr(Encoding::UTF_8),
|
87
|
+
'bull' => 8226.chr(Encoding::UTF_8),
|
88
|
+
'hellip' => 8230.chr(Encoding::UTF_8),
|
89
|
+
'permil' => 8240.chr(Encoding::UTF_8),
|
90
|
+
'prime' => 8242.chr(Encoding::UTF_8),
|
91
|
+
'Prime' => 8243.chr(Encoding::UTF_8),
|
92
|
+
'lsaquo' => 8249.chr(Encoding::UTF_8),
|
93
|
+
'rsaquo' => 8250.chr(Encoding::UTF_8),
|
94
|
+
'oline' => 8254.chr(Encoding::UTF_8),
|
95
|
+
'frasl' => 8260.chr(Encoding::UTF_8),
|
96
|
+
'euro' => 8364.chr(Encoding::UTF_8),
|
97
|
+
'image' => 8465.chr(Encoding::UTF_8),
|
98
|
+
'weierp' => 8472.chr(Encoding::UTF_8),
|
99
|
+
'real' => 8476.chr(Encoding::UTF_8),
|
100
|
+
'trade' => 8482.chr(Encoding::UTF_8),
|
101
|
+
'alefsym' => 8501.chr(Encoding::UTF_8),
|
102
|
+
'larr' => 8592.chr(Encoding::UTF_8),
|
103
|
+
'uarr' => 8593.chr(Encoding::UTF_8),
|
104
|
+
'rarr' => 8594.chr(Encoding::UTF_8),
|
105
|
+
'darr' => 8595.chr(Encoding::UTF_8),
|
106
|
+
'harr' => 8596.chr(Encoding::UTF_8),
|
107
|
+
'crarr' => 8629.chr(Encoding::UTF_8),
|
108
|
+
'lArr' => 8656.chr(Encoding::UTF_8),
|
109
|
+
'uArr' => 8657.chr(Encoding::UTF_8),
|
110
|
+
'rArr' => 8658.chr(Encoding::UTF_8),
|
111
|
+
'dArr' => 8659.chr(Encoding::UTF_8),
|
112
|
+
'hArr' => 8660.chr(Encoding::UTF_8),
|
113
|
+
'forall' => 8704.chr(Encoding::UTF_8),
|
114
|
+
'part' => 8706.chr(Encoding::UTF_8),
|
115
|
+
'exist' => 8707.chr(Encoding::UTF_8),
|
116
|
+
'empty' => 8709.chr(Encoding::UTF_8),
|
117
|
+
'nabla' => 8711.chr(Encoding::UTF_8),
|
118
|
+
'isin' => 8712.chr(Encoding::UTF_8),
|
119
|
+
'notin' => 8713.chr(Encoding::UTF_8),
|
120
|
+
'ni' => 8715.chr(Encoding::UTF_8),
|
121
|
+
'prod' => 8719.chr(Encoding::UTF_8),
|
122
|
+
'sum' => 8721.chr(Encoding::UTF_8),
|
123
|
+
'minus' => 8722.chr(Encoding::UTF_8),
|
124
|
+
'lowast' => 8727.chr(Encoding::UTF_8),
|
125
|
+
'radic' => 8730.chr(Encoding::UTF_8),
|
126
|
+
'prop' => 8733.chr(Encoding::UTF_8),
|
127
|
+
'infin' => 8734.chr(Encoding::UTF_8),
|
128
|
+
'ang' => 8736.chr(Encoding::UTF_8),
|
129
|
+
'and' => 8743.chr(Encoding::UTF_8),
|
130
|
+
'or' => 8744.chr(Encoding::UTF_8),
|
131
|
+
'cap' => 8745.chr(Encoding::UTF_8),
|
132
|
+
'cup' => 8746.chr(Encoding::UTF_8),
|
133
|
+
'int' => 8747.chr(Encoding::UTF_8),
|
134
|
+
'there4' => 8756.chr(Encoding::UTF_8),
|
135
|
+
'sim' => 8764.chr(Encoding::UTF_8),
|
136
|
+
'cong' => 8773.chr(Encoding::UTF_8),
|
137
|
+
'asymp' => 8776.chr(Encoding::UTF_8),
|
138
|
+
'ne' => 8800.chr(Encoding::UTF_8),
|
139
|
+
'equiv' => 8801.chr(Encoding::UTF_8),
|
140
|
+
'le' => 8804.chr(Encoding::UTF_8),
|
141
|
+
'ge' => 8805.chr(Encoding::UTF_8),
|
142
|
+
'sub' => 8834.chr(Encoding::UTF_8),
|
143
|
+
'sup' => 8835.chr(Encoding::UTF_8),
|
144
|
+
'nsub' => 8836.chr(Encoding::UTF_8),
|
145
|
+
'sube' => 8838.chr(Encoding::UTF_8),
|
146
|
+
'supe' => 8839.chr(Encoding::UTF_8),
|
147
|
+
'oplus' => 8853.chr(Encoding::UTF_8),
|
148
|
+
'otimes' => 8855.chr(Encoding::UTF_8),
|
149
|
+
'perp' => 8869.chr(Encoding::UTF_8),
|
150
|
+
'sdot' => 8901.chr(Encoding::UTF_8),
|
151
|
+
'lceil' => 8968.chr(Encoding::UTF_8),
|
152
|
+
'rceil' => 8969.chr(Encoding::UTF_8),
|
153
|
+
'lfloor' => 8970.chr(Encoding::UTF_8),
|
154
|
+
'rfloor' => 8971.chr(Encoding::UTF_8),
|
155
|
+
'lang' => 9001.chr(Encoding::UTF_8),
|
156
|
+
'rang' => 9002.chr(Encoding::UTF_8),
|
157
|
+
'loz' => 9674.chr(Encoding::UTF_8),
|
158
|
+
'spades' => 9824.chr(Encoding::UTF_8),
|
159
|
+
'clubs' => 9827.chr(Encoding::UTF_8),
|
160
|
+
'hearts' => 9829.chr(Encoding::UTF_8),
|
161
|
+
'diams' => 9830.chr(Encoding::UTF_8),
|
162
|
+
}
|
163
|
+
|
164
|
+
end
|
165
|
+
|
166
|
+
end
|
167
|
+
|
168
|
+
end
|
169
|
+
|
170
|
+
end
|
171
|
+
|
172
|
+
=begin rdoc
|
173
|
+
|
174
|
+
== AUTHOR
|
175
|
+
|
176
|
+
Jeff Anderson, <jeffa at cpan.org>
|
177
|
+
|
178
|
+
== LICENSE AND COPYRIGHT
|
179
|
+
|
180
|
+
Copyright 2015 Jeff Anderson. (See License.md shipped with distro)
|
181
|
+
|
182
|
+
=end
|
data/lib/HTML/Encoder.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require "HTML/Encoder/Unicode.rb" if RUBY_VERSION > '1.8.7'
|
2
|
+
|
1
3
|
module HTML
|
2
4
|
|
3
5
|
class Encoder
|
@@ -112,163 +114,14 @@ module HTML
|
|
112
114
|
'iquest' => 191.chr,
|
113
115
|
'times' => 215.chr, # times is a keyword in perl
|
114
116
|
'divide' => 247.chr,
|
115
|
-
|
116
|
-
=begin comment
|
117
|
-
'OElig' => 338.chr,
|
118
|
-
'oelig' => 339.chr,
|
119
|
-
'Scaron' => 352.chr,
|
120
|
-
'scaron' => 353.chr,
|
121
|
-
'Yuml' => 376.chr,
|
122
|
-
'fnof' => 402.chr,
|
123
|
-
'circ' => 710.chr,
|
124
|
-
'tilde' => 732.chr,
|
125
|
-
'Alpha' => 913.chr,
|
126
|
-
'Beta' => 914.chr,
|
127
|
-
'Gamma' => 915.chr,
|
128
|
-
'Delta' => 916.chr,
|
129
|
-
'Epsilon' => 917.chr,
|
130
|
-
'Zeta' => 918.chr,
|
131
|
-
'Eta' => 919.chr,
|
132
|
-
'Theta' => 920.chr,
|
133
|
-
'Iota' => 921.chr,
|
134
|
-
'Kappa' => 922.chr,
|
135
|
-
'Lambda' => 923.chr,
|
136
|
-
'Mu' => 924.chr,
|
137
|
-
'Nu' => 925.chr,
|
138
|
-
'Xi' => 926.chr,
|
139
|
-
'Omicron' => 927.chr,
|
140
|
-
'Pi' => 928.chr,
|
141
|
-
'Rho' => 929.chr,
|
142
|
-
'Sigma' => 931.chr,
|
143
|
-
'Tau' => 932.chr,
|
144
|
-
'Upsilon' => 933.chr,
|
145
|
-
'Phi' => 934.chr,
|
146
|
-
'Chi' => 935.chr,
|
147
|
-
'Psi' => 936.chr,
|
148
|
-
'Omega' => 937.chr,
|
149
|
-
'alpha' => 945.chr,
|
150
|
-
'beta' => 946.chr,
|
151
|
-
'gamma' => 947.chr,
|
152
|
-
'delta' => 948.chr,
|
153
|
-
'epsilon' => 949.chr,
|
154
|
-
'zeta' => 950.chr,
|
155
|
-
'eta' => 951.chr,
|
156
|
-
'theta' => 952.chr,
|
157
|
-
'iota' => 953.chr,
|
158
|
-
'kappa' => 954.chr,
|
159
|
-
'lambda' => 955.chr,
|
160
|
-
'mu' => 956.chr,
|
161
|
-
'nu' => 957.chr,
|
162
|
-
'xi' => 958.chr,
|
163
|
-
'omicron' => 959.chr,
|
164
|
-
'pi' => 960.chr,
|
165
|
-
'rho' => 961.chr,
|
166
|
-
'sigmaf' => 962.chr,
|
167
|
-
'sigma' => 963.chr,
|
168
|
-
'tau' => 964.chr,
|
169
|
-
'upsilon' => 965.chr,
|
170
|
-
'phi' => 966.chr,
|
171
|
-
'chi' => 967.chr,
|
172
|
-
'psi' => 968.chr,
|
173
|
-
'omega' => 969.chr,
|
174
|
-
'thetasym' => 977.chr,
|
175
|
-
'upsih' => 978.chr,
|
176
|
-
'piv' => 982.chr,
|
177
|
-
'ensp' => 8194.chr,
|
178
|
-
'emsp' => 8195.chr,
|
179
|
-
'thinsp' => 8201.chr,
|
180
|
-
'zwnj' => 8204.chr,
|
181
|
-
'zwj' => 8205.chr,
|
182
|
-
'lrm' => 8206.chr,
|
183
|
-
'rlm' => 8207.chr,
|
184
|
-
'ndash' => 8211.chr,
|
185
|
-
'mdash' => 8212.chr,
|
186
|
-
'lsquo' => 8216.chr,
|
187
|
-
'rsquo' => 8217.chr,
|
188
|
-
'sbquo' => 8218.chr,
|
189
|
-
'ldquo' => 8220.chr,
|
190
|
-
'rdquo' => 8221.chr,
|
191
|
-
'bdquo' => 8222.chr,
|
192
|
-
'dagger' => 8224.chr,
|
193
|
-
'Dagger' => 8225.chr,
|
194
|
-
'bull' => 8226.chr,
|
195
|
-
'hellip' => 8230.chr,
|
196
|
-
'permil' => 8240.chr,
|
197
|
-
'prime' => 8242.chr,
|
198
|
-
'Prime' => 8243.chr,
|
199
|
-
'lsaquo' => 8249.chr,
|
200
|
-
'rsaquo' => 8250.chr,
|
201
|
-
'oline' => 8254.chr,
|
202
|
-
'frasl' => 8260.chr,
|
203
|
-
'euro' => 8364.chr,
|
204
|
-
'image' => 8465.chr,
|
205
|
-
'weierp' => 8472.chr,
|
206
|
-
'real' => 8476.chr,
|
207
|
-
'trade' => 8482.chr,
|
208
|
-
'alefsym' => 8501.chr,
|
209
|
-
'larr' => 8592.chr,
|
210
|
-
'uarr' => 8593.chr,
|
211
|
-
'rarr' => 8594.chr,
|
212
|
-
'darr' => 8595.chr,
|
213
|
-
'harr' => 8596.chr,
|
214
|
-
'crarr' => 8629.chr,
|
215
|
-
'lArr' => 8656.chr,
|
216
|
-
'uArr' => 8657.chr,
|
217
|
-
'rArr' => 8658.chr,
|
218
|
-
'dArr' => 8659.chr,
|
219
|
-
'hArr' => 8660.chr,
|
220
|
-
'forall' => 8704.chr,
|
221
|
-
'part' => 8706.chr,
|
222
|
-
'exist' => 8707.chr,
|
223
|
-
'empty' => 8709.chr,
|
224
|
-
'nabla' => 8711.chr,
|
225
|
-
'isin' => 8712.chr,
|
226
|
-
'notin' => 8713.chr,
|
227
|
-
'ni' => 8715.chr,
|
228
|
-
'prod' => 8719.chr,
|
229
|
-
'sum' => 8721.chr,
|
230
|
-
'minus' => 8722.chr,
|
231
|
-
'lowast' => 8727.chr,
|
232
|
-
'radic' => 8730.chr,
|
233
|
-
'prop' => 8733.chr,
|
234
|
-
'infin' => 8734.chr,
|
235
|
-
'ang' => 8736.chr,
|
236
|
-
'and' => 8743.chr,
|
237
|
-
'or' => 8744.chr,
|
238
|
-
'cap' => 8745.chr,
|
239
|
-
'cup' => 8746.chr,
|
240
|
-
'int' => 8747.chr,
|
241
|
-
'there4' => 8756.chr,
|
242
|
-
'sim' => 8764.chr,
|
243
|
-
'cong' => 8773.chr,
|
244
|
-
'asymp' => 8776.chr,
|
245
|
-
'ne' => 8800.chr,
|
246
|
-
'equiv' => 8801.chr,
|
247
|
-
'le' => 8804.chr,
|
248
|
-
'ge' => 8805.chr,
|
249
|
-
'sub' => 8834.chr,
|
250
|
-
'sup' => 8835.chr,
|
251
|
-
'nsub' => 8836.chr,
|
252
|
-
'sube' => 8838.chr,
|
253
|
-
'supe' => 8839.chr,
|
254
|
-
'oplus' => 8853.chr,
|
255
|
-
'otimes' => 8855.chr,
|
256
|
-
'perp' => 8869.chr,
|
257
|
-
'sdot' => 8901.chr,
|
258
|
-
'lceil' => 8968.chr,
|
259
|
-
'rceil' => 8969.chr,
|
260
|
-
'lfloor' => 8970.chr,
|
261
|
-
'rfloor' => 8971.chr,
|
262
|
-
'lang' => 9001.chr,
|
263
|
-
'rang' => 9002.chr,
|
264
|
-
'loz' => 9674.chr,
|
265
|
-
'spades' => 9824.chr,
|
266
|
-
'clubs' => 9827.chr,
|
267
|
-
'hearts' => 9829.chr,
|
268
|
-
'diams' => 9830.chr,
|
269
|
-
=end
|
270
117
|
}
|
271
118
|
|
119
|
+
if RUBY_VERSION > '1.8.7'
|
120
|
+
HTML::Encoder::Unicode.unicode_mapping.each{ |k,v|
|
121
|
+
@entity2char[k] = v
|
122
|
+
}
|
123
|
+
end
|
124
|
+
|
272
125
|
@char2entity = Hash[@entity2char.map { |k, v| [v, "&#{k};"] }]
|
273
126
|
|
274
127
|
for i in 0..255
|
@@ -284,18 +137,24 @@ module HTML
|
|
284
137
|
string = args[0]
|
285
138
|
chars = args[1].nil? ? '&<>"\'' : args[1]
|
286
139
|
|
287
|
-
#$chars =~ s,(?<!\\)([]/]),\\$1,g;
|
288
|
-
#$chars =~ s,(?<!\\)\\\z,\\\\,;
|
289
140
|
chars.to_s.each_char { |c|
|
290
|
-
string = string.to_s.gsub( c, @char2entity[c] )
|
141
|
+
string = string.to_s.gsub( c, @char2entity[c] || num_entity(c) )
|
291
142
|
}
|
292
143
|
|
293
144
|
return string
|
294
145
|
|
295
146
|
end
|
296
147
|
|
297
|
-
def
|
148
|
+
def encode_hex( *args )
|
149
|
+
tmp = @char2entity
|
150
|
+
@char2entity = {}
|
151
|
+
string = encode( *args )
|
152
|
+
@char2entity = tmp
|
153
|
+
return string
|
154
|
+
end
|
298
155
|
|
156
|
+
def num_entity( char )
|
157
|
+
return sprintf( '&#x%X;', char.unpack('C')[0] )
|
299
158
|
end
|
300
159
|
|
301
160
|
end
|
data/t/01-load.rb
CHANGED
@@ -6,6 +6,11 @@ class TestLoad < Test::Unit::TestCase
|
|
6
6
|
assert_nothing_raised { require "HTML/AutoTag.rb" }
|
7
7
|
assert_nothing_raised { require "HTML/AutoAttr.rb" }
|
8
8
|
assert_nothing_raised { require "HTML/Encoder.rb" }
|
9
|
+
|
10
|
+
if RUBY_VERSION > '1.8.7'
|
11
|
+
assert_nothing_raised { require "HTML/Encoder/Unicode.rb" }
|
12
|
+
end
|
13
|
+
|
9
14
|
end
|
10
15
|
|
11
16
|
end
|
data/t/05-encode.rb
CHANGED
@@ -58,14 +58,66 @@ class TestHTML_Encoder < Test::Unit::TestCase
|
|
58
58
|
|
59
59
|
end
|
60
60
|
|
61
|
-
def
|
61
|
+
def test_numeric
|
62
62
|
|
63
|
+
encoder = HTML::Encoder.new()
|
64
|
+
|
65
|
+
assert_equal(
|
66
|
+
'&',
|
67
|
+
encoder.num_entity( '&' ),
|
68
|
+
'char encoded numerically correctly'
|
69
|
+
)
|
70
|
+
|
71
|
+
assert_equal(
|
72
|
+
'&<>"'',
|
73
|
+
encoder.encode_hex( '&<>"\'' ),
|
74
|
+
'default chars encoded numerically correctly'
|
75
|
+
)
|
76
|
+
|
77
|
+
assert_equal(
|
78
|
+
'&<>"'',
|
79
|
+
encoder.encode( '&<>"\'' ),
|
80
|
+
'does not impact default chars encoded correctly'
|
81
|
+
)
|
82
|
+
|
83
|
+
assert_equal(
|
84
|
+
'hello',
|
85
|
+
encoder.encode_hex( 'hello', '' ),
|
86
|
+
'no chars encoded when no chars requested'
|
87
|
+
)
|
88
|
+
|
89
|
+
assert_equal(
|
90
|
+
'hello',
|
91
|
+
encoder.encode_hex( 'hello', 'e' ),
|
92
|
+
'requested chars encoded correctly'
|
93
|
+
)
|
94
|
+
|
95
|
+
assert_equal(
|
96
|
+
'hello',
|
97
|
+
encoder.encode( 'hello', 'e' ),
|
98
|
+
'requested chars encoded correctly'
|
99
|
+
)
|
63
100
|
|
64
101
|
end
|
65
102
|
|
66
|
-
def
|
103
|
+
def test_upper
|
104
|
+
|
105
|
+
return unless RUBY_VERSION > '1.8.7'
|
67
106
|
encoder = HTML::Encoder.new()
|
68
|
-
|
107
|
+
|
108
|
+
str = eval( '8224.chr(Encoding::UTF_8)' )
|
109
|
+
assert_equal(
|
110
|
+
'†',
|
111
|
+
encoder.encode( str, str ),
|
112
|
+
'unicode char encoded correctly'
|
113
|
+
)
|
114
|
+
|
115
|
+
str = eval( '9824.chr(Encoding::UTF_8)+9827.chr(Encoding::UTF_8)+9829.chr(Encoding::UTF_8)+9830.chr(Encoding::UTF_8)' )
|
116
|
+
assert_equal(
|
117
|
+
'♠♣♥♦',
|
118
|
+
encoder.encode( str, str ),
|
119
|
+
'unicode chars encoded correctly'
|
120
|
+
)
|
69
121
|
end
|
70
122
|
|
71
123
|
end
|
metadata
CHANGED
@@ -1,53 +1,63 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: HTML-AutoTag
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 31
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 4
|
10
|
+
version: 1.0.4
|
5
11
|
platform: ruby
|
6
|
-
authors:
|
12
|
+
authors:
|
7
13
|
- jeffa
|
8
14
|
autorequire:
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
17
|
+
|
18
|
+
date: 2015-11-04 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
14
21
|
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.3'
|
20
|
-
type: :development
|
21
22
|
prerelease: false
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 9
|
29
|
+
segments:
|
30
|
+
- 1
|
31
|
+
- 3
|
32
|
+
version: "1.3"
|
34
33
|
type: :development
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: rake
|
35
37
|
prerelease: false
|
36
|
-
|
37
|
-
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
38
41
|
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id002
|
41
49
|
description: Just another HTML tag generator for ruby.
|
42
|
-
email:
|
50
|
+
email:
|
43
51
|
- jeffa@cpan.org
|
44
52
|
executables: []
|
53
|
+
|
45
54
|
extensions: []
|
46
|
-
|
55
|
+
|
56
|
+
extra_rdoc_files:
|
47
57
|
- README
|
48
|
-
files:
|
49
|
-
-
|
50
|
-
-
|
58
|
+
files:
|
59
|
+
- .gitignore
|
60
|
+
- .travis.yml
|
51
61
|
- Changes
|
52
62
|
- Gemfile
|
53
63
|
- HTML-AutoTag.gemspec
|
@@ -58,6 +68,7 @@ files:
|
|
58
68
|
- lib/HTML/AutoTag.rb
|
59
69
|
- lib/HTML/AutoTag/version.rb
|
60
70
|
- lib/HTML/Encoder.rb
|
71
|
+
- lib/HTML/Encoder/Unicode.rb
|
61
72
|
- readme.md
|
62
73
|
- t/01-load.rb
|
63
74
|
- t/02-tag.rb
|
@@ -65,27 +76,37 @@ files:
|
|
65
76
|
- t/04-tag-attrs.rb
|
66
77
|
- t/05-encode.rb
|
67
78
|
homepage: https://github.com/jeffa/html-autotag-ruby
|
68
|
-
licenses:
|
79
|
+
licenses:
|
69
80
|
- MIT
|
70
|
-
metadata: {}
|
71
81
|
post_install_message:
|
72
82
|
rdoc_options: []
|
73
|
-
|
83
|
+
|
84
|
+
require_paths:
|
74
85
|
- lib
|
75
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
-
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
77
89
|
- - ">="
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
|
80
|
-
|
81
|
-
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 3
|
92
|
+
segments:
|
93
|
+
- 0
|
94
|
+
version: "0"
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
97
|
+
requirements:
|
82
98
|
- - ">="
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
hash: 3
|
101
|
+
segments:
|
102
|
+
- 0
|
103
|
+
version: "0"
|
85
104
|
requirements: []
|
105
|
+
|
86
106
|
rubyforge_project:
|
87
|
-
rubygems_version:
|
107
|
+
rubygems_version: 1.8.25
|
88
108
|
signing_key:
|
89
|
-
specification_version:
|
109
|
+
specification_version: 3
|
90
110
|
summary: Generate HTML tags with ease (HTML4, HTML5, XHTML and SVG).
|
91
111
|
test_files: []
|
112
|
+
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: eb544073abbb385cff430f587626b78727639715
|
4
|
-
data.tar.gz: 80d246a1d403ab03fabc9faa9e4c3f695c5f2060
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: ed6c857557fa1eddfc4b13325d8ab19ba6d21591fb146058389a775d8893c0ed56c7d671ac292bf157c27f3471ae2400edeca6974349f245d736949705111f80
|
7
|
-
data.tar.gz: a7ed0a77eeabb55cf54ea827471b4dd69aab8bc5ed1812b250ba9a5a65e7b82818e4f21e96632db9b7cb9bf30a8a6b266f3a407aeb6d23bb42ac67510020ee15
|