hamlit 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 28a84db73fc904f991af638d917007332547d58d
4
- data.tar.gz: f1d1b3f015fb126cb5b4f17bbe98ed9d544e93a1
3
+ metadata.gz: 658acdc2d3ba2e0c67b1b51e181b27fc9b3ede4f
4
+ data.tar.gz: 05cd64cef646b2af0252dff93f68594816385e62
5
5
  SHA512:
6
- metadata.gz: 03d00832e894a37163e28f1ff2f635d9c77cc456be27b335b653a2367e3fe2cb5804524a7db955f564612ff5453b0b900751ed9c815a7342e303180312f47ae8
7
- data.tar.gz: 4aecd7d189befada1018c846c0059ff093d84fa03c414840e8454add6888725039eebd76035cec8b5d65716c5123baf528fb80bea113538b337d78d535c8c212
6
+ metadata.gz: 92ed91af56b3e423dd3cd317826872dff66987ee46351cb769196d730943ee19d93a15e2e9c07999bb9fdff7aaf5e071732c11aafafaf54d0cb40e5804d2bffa
7
+ data.tar.gz: 2ad62fc2df52f1d42c459136e295d25e3f74718232d5369c972024fa40655f7537b3d8d41cc562145ad1db28d682a247b19c96e7cc53cf1b1dfa9e25b40fc285
data/.travis.yml CHANGED
@@ -1,4 +1,6 @@
1
1
  language: ruby
2
+ sudo: false
3
+ cache: bundler
2
4
  branches:
3
5
  only:
4
6
  - master
@@ -12,19 +14,28 @@ matrix:
12
14
  env: TASK=test
13
15
  - rvm: 2.2
14
16
  env: TASK=test
17
+ - rvm: 2.2
18
+ env: TASK=bench TEMPLATE=benchmark/dynamic_boolean_attribute.haml
15
19
  - rvm: 2.2
16
20
  env: TASK=bench TEMPLATE=benchmark/boolean_attribute.haml,benchmark/class_attribute.haml,benchmark/id_attribute.haml,benchmark/data_attribute.haml,benchmark/common_attribute.haml
17
21
  - rvm: 2.2
18
22
  env: TASK=bench TEMPLATE=benchmark/dynamic_attributes/boolean_attribute.haml,benchmark/dynamic_attributes/class_attribute.haml,benchmark/dynamic_attributes/id_attribute.haml,benchmark/dynamic_attributes/data_attribute.haml,benchmark/dynamic_attributes/common_attribute.haml
23
+ - rvm: 2.2
24
+ env: TASK=bench SLIM_BENCH=1
19
25
  - rvm: 2.2
20
26
  env: TASK=bench TEMPLATE=benchmark/etc/attribute_builder.haml
21
27
  - rvm: 2.2
22
- env: TASK=bench SLIM_BENCH=1
28
+ env: TASK=bench TEMPLATE=benchmark/etc/static_analyzer.haml
29
+ - rvm: 2.2
30
+ env: TASK=bench TEMPLATE=benchmark/etc/string_interpolation.haml
23
31
  - rvm: 2.2
24
32
  env: TASK=bench TEMPLATE=test/haml/templates/standard.haml COMPILE=1
25
33
  allow_failures:
34
+ - env: TASK=bench TEMPLATE=benchmark/dynamic_boolean_attribute.haml
26
35
  - env: TASK=bench TEMPLATE=benchmark/boolean_attribute.haml,benchmark/class_attribute.haml,benchmark/id_attribute.haml,benchmark/data_attribute.haml,benchmark/common_attribute.haml
27
36
  - env: TASK=bench TEMPLATE=benchmark/dynamic_attributes/boolean_attribute.haml,benchmark/dynamic_attributes/class_attribute.haml,benchmark/dynamic_attributes/id_attribute.haml,benchmark/dynamic_attributes/data_attribute.haml,benchmark/dynamic_attributes/common_attribute.haml
28
- - env: TASK=bench TEMPLATE=benchmark/etc/attribute_builder.haml
29
37
  - env: TASK=bench SLIM_BENCH=1
38
+ - env: TASK=bench TEMPLATE=benchmark/etc/attribute_builder.haml
39
+ - env: TASK=bench TEMPLATE=benchmark/etc/static_analyzer.haml
40
+ - env: TASK=bench TEMPLATE=benchmark/etc/string_interpolation.haml
30
41
  - env: TASK=bench TEMPLATE=test/haml/templates/standard.haml COMPILE=1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
- ## v2.0.0
1
+ # Change Log
2
2
 
3
+ All notable changes to this project will be documented in this file. This
4
+ project adheres to [Semantic Versioning](http://semver.org/). This change log is based upon
5
+ [keep-a-changelog](https://github.com/olivierlacan/keep-a-changelog).
6
+
7
+ ## [HEAD]
8
+ - No changes
9
+
10
+ ## [2.0.2] - 2015-12-12
11
+
12
+ ### Fixed
13
+ - Fix a crash in compiling with CLI
14
+ [#46](https://github.com/k0kubun/hamlit/pull/46). *Thanks to @walf443*
15
+ - Use default engine options properly in CLI commands
16
+
17
+ ## [2.0.1] - 2015-11-30
18
+
19
+ ### Fixed
20
+ - Fix build failure of native extension
21
+
22
+ ## [2.0.0] - 2015-11-30 [YANKED]
23
+ ### Added
24
+ - Support object reference
25
+
26
+ ### Changed
3
27
  - Full scratch of internal implementation
4
28
  - Rendering is strongly optimized
5
29
  - Static analyzer is introduced
@@ -7,322 +31,438 @@
7
31
  - Optimized compilation for 5 types of attributes
8
32
  - Compilation became faster too
9
33
  - Many rendering incompatibilities are resolved
10
- - Object reference support
11
- - Breaking changes:
12
- - Replaced parser with original Haml's one
13
- - Incompatible parsing error will never happen, but we can no longer parse attributes with Ripper
14
- - Unified behavior for both static and dynamic attributes, see [5 types of attributes](REFERENCE.md#5-types-of-attributes)
15
- - Though inconsistent behavior is removed, we can no longer rely on completely-Haml-compatible behavior of static attributes and pass haml-spec
16
- - Added :escape\_attrs option
17
- - You should specify HTML-escaping availability for script and attrs separately.
18
-
19
- ## v1.7.2
20
-
34
+ - [**breaking**] Replaced parser with original Haml's one
35
+ - Incompatible parsing error will never happen, but we can no longer parse
36
+ attributes with Ripper
37
+ - [**breaking**] Unified behavior for both static and dynamic attributes, see
38
+ [5 types of attributes](REFERENCE.md#5-types-of-attributes)
39
+ - Though inconsistent behavior is removed, we can no longer rely on
40
+ completely-Haml-compatible behavior of static attributes and pass haml-spec
41
+ - [**breaking**] Added :escape\_attrs option
42
+ - You should specify HTML-escaping availability for script and attrs
43
+ separately.
44
+
45
+ ## [1.7.2] - 2015-07-22
46
+
47
+ ### Fixed
21
48
  - Bugfix about parsing a content of tag
22
49
  - This was introduced in v1.6.6.
23
50
 
24
- ## v1.7.1
51
+ ## [1.7.1] - 2015-07-21
25
52
 
53
+ ### Fixed
26
54
  - Don't escape a block content of some helpers
27
- - https://github.com/k0kubun/hamlit/issues/35
28
- - Thanks to @felixbuenemann
55
+ [#35](https://github.com/k0kubun/hamlit/issues/35). *Thanks to @felixbuenemann*
29
56
 
30
- ## v1.7.0
57
+ ## [1.7.0] - 2015-07-09
31
58
 
59
+ ### Added
32
60
  - Support Ruby 2.2.0 hash syntax
33
61
  - like `{ "hyphened-key": "value" }`
34
62
 
35
- ## v1.6.7
63
+ ## [1.6.7] - 2015-06-27
36
64
 
65
+ ### Fixed
37
66
  - Remove unused variables and avoid shadowing
38
67
  - To suppress warnings in application using `rspec --warnings`
39
68
 
40
- ## v1.6.6
69
+ ## [1.6.6] - 2015-06-24
41
70
 
71
+ ### Added
42
72
  - Allow hyphenated HTML-style attributes
43
- - https://github.com/k0kubun/hamlit/pull/29
44
- - Thanks to @babelfish
73
+ [pull #29](https://github.com/k0kubun/hamlit/pull/29). *thanks to @babelfish*
45
74
 
46
- ## v1.6.5
75
+ ## [1.6.5] - 2015-06-13
47
76
 
77
+ ### Fixed
48
78
  - Don't duplicate element class and attribute class
49
79
  - Raise an error for an empty tag name
50
80
 
51
- ## v1.6.4
81
+ ## [1.6.4] - 2015-06-13
52
82
 
83
+ ### Changed
53
84
  - Show human-friendly error messages
85
+
86
+ ### Fixed
54
87
  - Fix line number of runtime syntax error
55
- - Increase the number of checked cases for illegal nesting
56
- - Thanks to @eagletmt
88
+ - Increase the number of checked cases for illegal nesting.
89
+ *Thanks to @eagletmt*
57
90
 
58
- ## v1.6.3
91
+ ## [1.6.3] - 2015-06-13
59
92
 
93
+ ### Fixed
60
94
  - Fix ! and & parsing inside a tag
61
- - https://github.com/k0kubun/hamlit/issues/27#issuecomment-111593458
62
- - Thanks to @leesmith
95
+ [#27](https://github.com/k0kubun/hamlit/issues/27#issuecomment-111593458).
96
+ *Thanks to @leesmith*
63
97
 
64
- ## v1.6.2
98
+ ## [1.6.2] - 2015-06-11
65
99
 
100
+ ### Fixed
66
101
  - Reject a content for self-closing tags
67
102
  - Reject nesing within self-closing tags
68
103
 
69
- ## v1.6.1
104
+ ## [1.6.1] - 2015-06-11
70
105
 
106
+ ### Fixed
71
107
  - Parse N-space indentation
72
- - https://github.com/k0kubun/hamlit/issues/26
73
- - Thanks to @eagletmt
108
+ [#26](https://github.com/k0kubun/hamlit/issues/26). *Thanks to @eagletmt*
74
109
 
75
- ## v1.6.0
110
+ ## [1.6.0] - 2015-06-11
76
111
 
112
+ ### Fixed
77
113
  - Fix line number of compiled code for new attributes
78
- - Render HTML entities normally for plain text
79
- - https://github.com/k0kubun/hamlit/issues/27
80
- - Thanks to @jeffblake
114
+ - Render HTML entities normally for plain text
115
+ [#27](https://github.com/k0kubun/hamlit/issues/27). *Thanks to @jeffblake*
81
116
 
82
- ## v1.5.9
117
+ ## [1.5.9] - 2015-06-08
83
118
 
119
+ ### Fixed
84
120
  - Reject silent script after a tag
85
121
 
86
- ## v1.5.8
122
+ ## [1.5.8] - 2015-06-08
87
123
 
124
+ ### Fixed
88
125
  - Fix parsing inline script for != and &=
89
126
 
90
- ## v1.5.7
127
+ ## [1.5.7] - 2015-06-08
91
128
 
129
+ ### Fixed
92
130
  - Fix the behavior for multi-line script
93
131
 
94
- ## v1.5.6
132
+ ## [1.5.6] - 2015-06-07
95
133
 
134
+ ### Added
96
135
  - Raise error for unbalanced brackets
136
+
137
+ ### Changed
97
138
  - Don't render newline after block script
98
139
 
99
- ## v1.5.5
140
+ ## [1.5.5] - 2015-06-07
100
141
 
142
+ ### Added
101
143
  - Support &, &== operator
144
+
145
+ ### Changed
102
146
  - Depend on v0.7.6 of temple for refactoring
147
+
148
+ ### Fixed
103
149
  - Fix a trivial diff of rendering multiline operator
104
150
 
105
- ## v1.5.4
151
+ ## [1.5.4] - 2015-06-07
106
152
 
153
+ ### Changed
107
154
  - Recursively remove whitespace inside a tag
155
+
156
+ ### Fixed
108
157
  - Fix ! operator immediately before whitespace
109
158
 
110
- ## v1.5.3
159
+ ## [1.5.3] - 2015-06-06
111
160
 
161
+ ### Added
112
162
  - Support !, !=, !==, &= and ~ as inline operators
113
163
 
114
- ## v1.5.2
164
+ ## [1.5.2] - 2015-06-06
115
165
 
166
+ ### Changed
116
167
  - Disable html escaping in CSS and JavaScript filter
117
168
 
118
- ## v1.5.1
169
+ ## [1.5.1] - 2015-06-05
119
170
 
171
+ ### Changed
120
172
  - Remove outer whitespace in the block
121
173
 
122
- ## v1.5.0
174
+ ## [1.5.0] - 2015-06-03
123
175
 
176
+ ### Changed
124
177
  - Remake implementation of outer whitespace removal
125
178
 
126
- ## v1.4.7
179
+ ## [1.4.7] - 2015-06-03
127
180
 
181
+ ### Changed
128
182
  - Sort static old attributes by name
183
+
184
+ ### Fixed
129
185
  - Bugfix for old array attributes with class element
130
186
 
131
- ## v1.4.6
187
+ ## [1.4.6] - 2015-06-03
132
188
 
189
+ ### Added
133
190
  - Support `!==`, `==` operator
191
+
192
+ ### Fixed
134
193
  - Avoid regarding spaced block as multiline
135
194
 
136
- ## v1.4.5
195
+ ## [1.4.5] - 2015-06-02
137
196
 
197
+ ### Fixed
138
198
  - Support Ruby 2.0 and 2.1 for v1.4.4
139
199
 
140
- ## v1.4.4 (yanked)
200
+ ## [1.4.4] - 2015-06-02 [YANKED]
141
201
 
202
+ ### Fixed
142
203
  - Fix old attribute parser to be more flexible
143
204
  - Accept multiple hashes as old attributes
144
205
  - Accept old attributes with hash and literal
145
206
 
146
- ## v1.4.3
207
+ ## [1.4.3] - 2015-06-02
147
208
 
209
+ ### Changed
148
210
  - Allow `when` to have multiple candidates
149
211
  - Allow `rescue` to specify an error variable
150
212
 
151
- ## v1.4.2
213
+ ## [1.4.2] - 2015-05-31
152
214
 
215
+ ### Added
153
216
  - Support `!` operator
154
217
  - It disables html escaping for interpolated text
155
218
 
156
- ## v1.4.1
219
+ ## [1.4.1] - 2015-05-31
157
220
 
221
+ ### Fixed
158
222
  - Fix code mistake in 1.4.0
159
223
 
160
- ## v1.4.0 (yanked)
224
+ ## [1.4.0] - 2015-05-31 [YANKED]
161
225
 
226
+ ### Added
162
227
  - Escape interpolated string in plain text
163
228
 
164
- ## v1.3.2
229
+ ## [1.3.2] - 2015-05-30
165
230
 
166
231
  - Render `begin`, `rescue` and `ensure`
167
232
 
168
- ## v1.3.1
233
+ ## [1.3.1] - 2015-05-30
169
234
 
235
+ ### Fixed
170
236
  - Bugfix about a backslash-only comment
171
237
  - Don't strip a plain text
172
238
 
173
- ## v1.3.0
239
+ ## [1.3.0] - 2015-05-16
174
240
 
241
+ ### Added
175
242
  - Resurrect escape\_html option
243
+ [#25](https://github.com/k0kubun/hamlit/issues/25).
244
+ *Thanks to @resistorsoftware*
176
245
  - Still enabled by default
177
246
  - This has been dropped since v0.6.0
178
- - https://github.com/k0kubun/hamlit/issues/25
179
- - Thanks to @resistorsoftware
180
247
 
181
- ## v1.2.1
248
+ ## [1.2.1] - 2015-05-15
182
249
 
250
+ ### Fixed
183
251
  - Fix the list of boolean attributes
184
- - https://github.com/k0kubun/hamlit/issues/24
185
- - Thanks to @jeffblake
252
+ [#24](https://github.com/k0kubun/hamlit/issues/24). *Thanks to @jeffblake*
186
253
 
187
- ## v1.2.0
254
+ ## [1.2.0] - 2015-05-06
188
255
 
256
+ Added
189
257
  - Support `succeed`, `precede` and `surround`
190
- - https://github.com/k0kubun/hamlit/issues/22
191
- - Thanks to @sneakernets
258
+ [#22](https://github.com/k0kubun/hamlit/issues/22). *Thanks to @sneakernets*
192
259
 
193
- ## v1.1.1
260
+ ## [1.1.1] - 2015-05-06
194
261
 
262
+ ### Fixed
195
263
  - Bugfix of rendering array attributes
196
264
 
197
- ## v1.1.0
265
+ ## [1.1.0] - 2015-05-06
198
266
 
267
+ ### Fixed
199
268
  - Join id and class attributes
200
- - https://github.com/k0kubun/hamlit/issues/23
201
- - Thanks to @felixbuenemann
269
+ [#23](https://github.com/k0kubun/hamlit/issues/23).
270
+ *Thanks to @felixbuenemann*
202
271
 
203
- ## v1.0.0
272
+ ## [1.0.0] - 2015-04-12
204
273
 
274
+ ### Added
205
275
  - Use escape\_utils gem for faster escape\_html
206
276
 
207
- ## v0.6.2
277
+ ## [0.6.2] - 2015-04-12
208
278
 
279
+ ### Fixed
209
280
  - Don't render falsy attributes
210
- - https://github.com/k0kubun/hamlit/issues/2
211
- - Thanks to @eagletmt
281
+ [#2](https://github.com/k0kubun/hamlit/issues/2). *Thanks to @eagletmt*
212
282
 
213
- ## v0.6.1
283
+ ## [0.6.1] - 2015-04-12
214
284
 
285
+ ### Fixed
215
286
  - Bugfix of line numbers for better error backtrace
216
- - https://github.com/k0kubun/hamlit/pull/19
287
+ [pull #19](https://github.com/k0kubun/hamlit/pull/19)
217
288
 
218
- ## v0.6.0
289
+ ## [0.6.0] - 2015-04-12
219
290
 
291
+ ### Added
220
292
  - Automatically escape html in all situations
221
- - https://github.com/k0kubun/hamlit/pull/18
293
+ [pull #18](https://github.com/k0kubun/hamlit/pull/18)
222
294
 
223
- ## v0.5.3
295
+ ## [0.5.3] - 2015-04-12
224
296
 
297
+ ### Fixed
225
298
  - Bugfix for syntax error in data attribute hash
226
- - https://github.com/k0kubun/hamlit/issues/17
227
- - Thanks to @eagletmt
299
+ [#17](https://github.com/k0kubun/hamlit/issues/17). *Thanks to @eagletmt*
228
300
 
229
- ## v0.5.2
301
+ ## [0.5.2] - 2015-04-12
230
302
 
303
+ ### Fixed
231
304
  - Bugfix for silent script without block
232
- - https://github.com/k0kubun/hamlit/issues/16
233
- - Thanks to @eagletmt
305
+ [#16](https://github.com/k0kubun/hamlit/issues/16). *Thanks to @eagletmt*
234
306
 
235
- ## v0.5.1
307
+ ## [0.5.1] - 2015-04-12
236
308
 
309
+ ### Fixed
237
310
  - Bugfix about duplicated id and class
238
- - https://github.com/k0kubun/hamlit/issues/4
239
- - Thanks to @os0x
311
+ [#4](https://github.com/k0kubun/hamlit/issues/4). *Thanks to @os0x*
240
312
 
241
- ## v0.5.0
313
+ ## [0.5.0] - 2015-04-12
242
314
 
315
+ ### Fixed
243
316
  - Escape special characters in attribute values
244
- - https://github.com/k0kubun/hamlit/issues/10
245
- - Thanks to @mono0x, @eagletmt
317
+ [#10](https://github.com/k0kubun/hamlit/issues/10). *Thanks to @mono0x,
318
+ @eagletmt*
246
319
 
247
- ## v0.4.3
320
+ ## [0.4.3] - 2015-04-12
248
321
 
249
- - Allow empty else statement
250
- - https://github.com/k0kubun/hamlit/issues/14
251
- - Thanks to @jeffblake
252
- - Accept comment-only script
253
- - https://github.com/k0kubun/hamlit/issues/13
254
- - Thanks to @jeffblake
322
+ ### Fixed
323
+ - Allow empty else statement [#14](https://github.com/k0kubun/hamlit/issues/14).
324
+ *Thanks to @jeffblake*
325
+ - Accept comment-only script [#13](https://github.com/k0kubun/hamlit/issues/13).
326
+ *Thanks to @jeffblake*
255
327
 
256
- ## v0.4.2
328
+ ## [0.4.2] - 2015-04-05
257
329
 
330
+ ### Fixed
258
331
  - Bugfix about parsing nested attributes
259
- - https://github.com/k0kubun/hamlit/issues/12
260
- - Thanks to @creasty
332
+ [#12](https://github.com/k0kubun/hamlit/issues/12). *Thanks to @creasty*
333
+
334
+ ## [0.4.1] - 2015-04-05
261
335
 
262
- ## v0.4.1
336
+ ### Removed
337
+ - Automatic escape html is sintara, consult `README.md`.
263
338
 
339
+ ### Fixed
264
340
  - Escape haml operators by backslash
265
- - https://github.com/k0kubun/hamlit/issues/11
266
- - Thanks to @mono0x
341
+ [#11](https://github.com/k0kubun/hamlit/issues/11). *Thanks to @mono0x*
267
342
 
268
- ## v0.4.0 (yanked)
343
+ ## [0.4.0] - 2015-04-05 [YANKED]
269
344
 
345
+ ### Added
270
346
  - Automatically escape html in sinatra
271
- - This behavior is not compatible with Haml.
272
- - Removed from next version.
273
347
 
274
- ## v0.3.4
348
+ ## [0.3.4] - 2015-04-02
275
349
 
276
- - Allow tab indentation
277
- - https://github.com/k0kubun/hamlit/issues/9
278
- - Thanks to @tdtds
350
+ ### Fixed
351
+ - Allow tab indentation [#9](https://github.com/k0kubun/hamlit/issues/9).
352
+ *Thanks to @tdtds*
279
353
 
280
- ## v0.3.3
354
+ ## [0.3.3] - 2015-04-01
281
355
 
282
- - Accept multi byte parsing
283
- - https://github.com/k0kubun/hamlit/issues/8
284
- - Thanks to @machu
356
+ ### Fixed
357
+ - Accept multi byte parsing [#8](https://github.com/k0kubun/hamlit/issues/8).
358
+ *Thanks to @machu*
285
359
 
286
- ## v0.3.2
360
+ ## [0.3.2] - 2015-03-31
287
361
 
288
- - Bugfix for compiling old attributes
289
- - https://github.com/k0kubun/hamlit/issues/7
290
- - Thanks to @creasty
362
+ ### Fixed
363
+ - Bugfix for compiling old attributes [#7](https://github.com/k0kubun/hamlit/issues/7).
364
+ *Thanks to @creasty*
291
365
 
292
- ## v0.3.1
366
+ ## [0.3.1] - 2015-03-31
293
367
 
294
- - Hyphenate data attributes
295
- - https://github.com/k0kubun/hamlit/issues/5
296
- - Thanks to @os0x
368
+ ### Fixed
369
+ - Hyphenate data attributes [#5](https://github.com/k0kubun/hamlit/issues/5).
370
+ *Thanks to @os0x*
297
371
 
298
- ## v0.3.0
372
+ ## [0.3.0] - 2015-03-31
299
373
 
374
+ ### Added
300
375
  - Specify a version in dependency of temple
301
376
 
302
- ## v0.2.0
377
+ ## [0.2.0] - 2015-03-30
303
378
 
304
- - Allow comments in script
305
- - https://github.com/k0kubun/hamlit/issues/3
306
- - Thanks to @eagletmt
379
+ ### Added
380
+ - Allow comments in script [#3](https://github.com/k0kubun/hamlit/issues/3).
381
+ *Thanks to @eagletmt*
307
382
 
308
- ## v0.1.3
383
+ ## [0.1.3] - 2015-03-30
309
384
 
310
- - Bugfix for attribute nesting on runtime
311
- - https://github.com/k0kubun/hamlit/issues/1
312
- - Thanks to @eagletmt
385
+ ### Fixed
386
+ - Bugfix for [#1](https://github.com/k0kubun/hamlit/issues/1) attribute nesting
387
+ on runtime. *Thanks to @eagletmt*
313
388
 
314
- ## v0.1.2
389
+ ## [0.1.2] - 2015-03-30
315
390
 
391
+ ### Fixed
316
392
  - Ignore false or nil values in attributes
317
- - Partial fix for https://github.com/k0kubun/hamlit/issues/2
318
- - Thanks to @eagletmt
393
+ - Partial fix for [#2](https://github.com/k0kubun/hamlit/issues/2).
394
+ *Thanks to @eagletmt*
319
395
 
320
- ## v0.1.1
396
+ ## [0.1.1] - 2015-03-30
321
397
 
398
+ ### Removed
322
399
  - Drop obsolete `--ugly` option for CLI
323
- - Currently pretty mode is not implemented.
400
+ - Currently pretty mode is not implemented #2
324
401
 
325
- ## v0.1.0
402
+ ## [0.1.0] - 2015-03-30
326
403
 
327
404
  - Initial release
328
- - Passing haml-spec with ugly mode.
405
+ - Passing haml-spec with ugly mode
406
+
407
+ [0.1.0]: https://github.com/k0kubun/hamlit/compare/9cf8216...v0.1.0
408
+ [0.1.1]: https://github.com/k0kubun/hamlit/compare/v0.1.0...v0.1.1
409
+ [0.1.2]: https://github.com/k0kubun/hamlit/compare/v0.1.1...v0.1.2
410
+ [0.1.3]: https://github.com/k0kubun/hamlit/compare/v0.1.2...v0.1.3
411
+ [0.2.0]: https://github.com/k0kubun/hamlit/compare/v0.1.3...v0.2.0
412
+ [0.3.0]: https://github.com/k0kubun/hamlit/compare/v0.2.0...v0.3.0
413
+ [0.3.1]: https://github.com/k0kubun/hamlit/compare/v0.3.0...v0.3.1
414
+ [0.3.2]: https://github.com/k0kubun/hamlit/compare/v0.3.1...v0.3.2
415
+ [0.3.3]: https://github.com/k0kubun/hamlit/compare/v0.3.2...v0.3.3
416
+ [0.3.4]: https://github.com/k0kubun/hamlit/compare/v0.3.3...v0.3.4
417
+ [0.4.0]: https://github.com/k0kubun/hamlit/compare/v0.3.4...v0.4.0
418
+ [0.4.1]: https://github.com/k0kubun/hamlit/compare/v0.4.0...v0.4.1
419
+ [0.4.2]: https://github.com/k0kubun/hamlit/compare/v0.4.1...v0.4.2
420
+ [0.4.3]: https://github.com/k0kubun/hamlit/compare/v0.4.2...v0.4.3
421
+ [0.5.0]: https://github.com/k0kubun/hamlit/compare/v0.4.3...v0.5.0
422
+ [0.5.1]: https://github.com/k0kubun/hamlit/compare/v0.5.0...v0.5.1
423
+ [0.5.2]: https://github.com/k0kubun/hamlit/compare/v0.5.1...v0.5.2
424
+ [0.5.3]: https://github.com/k0kubun/hamlit/compare/v0.5.2...v0.5.3
425
+ [0.6.0]: https://github.com/k0kubun/hamlit/compare/v0.5.3...v0.6.0
426
+ [0.6.1]: https://github.com/k0kubun/hamlit/compare/v0.6.0...v0.6.1
427
+ [0.6.2]: https://github.com/k0kubun/hamlit/compare/v0.6.1...v0.6.2
428
+ [1.0.0]: https://github.com/k0kubun/hamlit/compare/v0.6.2...v1.0.0
429
+ [1.1.0]: https://github.com/k0kubun/hamlit/compare/v1.0.0...v1.1.0
430
+ [1.1.1]: https://github.com/k0kubun/hamlit/compare/v1.1.0...v1.1.1
431
+ [1.2.0]: https://github.com/k0kubun/hamlit/compare/v1.1.1...v1.2.0
432
+ [1.2.1]: https://github.com/k0kubun/hamlit/compare/v1.2.0...v1.2.1
433
+ [1.3.0]: https://github.com/k0kubun/hamlit/compare/v1.2.1...v1.3.0
434
+ [1.3.1]: https://github.com/k0kubun/hamlit/compare/v1.3.0...v1.3.1
435
+ [1.3.2]: https://github.com/k0kubun/hamlit/compare/v1.3.1...v1.3.2
436
+ [1.4.0]: https://github.com/k0kubun/hamlit/compare/v1.3.2...v1.4.0
437
+ [1.4.1]: https://github.com/k0kubun/hamlit/compare/v1.4.0...v1.4.1
438
+ [1.4.2]: https://github.com/k0kubun/hamlit/compare/v1.4.1...v1.4.2
439
+ [1.4.3]: https://github.com/k0kubun/hamlit/compare/v1.4.2...v1.4.3
440
+ [1.4.4]: https://github.com/k0kubun/hamlit/compare/v1.4.3...v1.4.4
441
+ [1.4.5]: https://github.com/k0kubun/hamlit/compare/v1.4.4...v1.4.5
442
+ [1.4.6]: https://github.com/k0kubun/hamlit/compare/v1.4.5...v1.4.6
443
+ [1.4.7]: https://github.com/k0kubun/hamlit/compare/v1.4.6...v1.4.7
444
+ [1.5.0]: https://github.com/k0kubun/hamlit/compare/v1.4.7...v1.5.0
445
+ [1.5.1]: https://github.com/k0kubun/hamlit/compare/v1.5.0...v1.5.1
446
+ [1.5.2]: https://github.com/k0kubun/hamlit/compare/v1.5.1...v1.5.2
447
+ [1.5.3]: https://github.com/k0kubun/hamlit/compare/v1.5.2...v1.5.3
448
+ [1.5.4]: https://github.com/k0kubun/hamlit/compare/v1.5.3...v1.5.4
449
+ [1.5.5]: https://github.com/k0kubun/hamlit/compare/v1.5.4...v1.5.5
450
+ [1.5.6]: https://github.com/k0kubun/hamlit/compare/v1.5.5...v1.5.6
451
+ [1.5.7]: https://github.com/k0kubun/hamlit/compare/v1.5.6...v1.5.7
452
+ [1.5.8]: https://github.com/k0kubun/hamlit/compare/v1.5.7...v1.5.8
453
+ [1.5.9]: https://github.com/k0kubun/hamlit/compare/v1.5.8...v1.5.9
454
+ [1.6.0]: https://github.com/k0kubun/hamlit/compare/v1.5.9...v1.6.0
455
+ [1.6.1]: https://github.com/k0kubun/hamlit/compare/v1.6.0...v1.6.1
456
+ [1.6.2]: https://github.com/k0kubun/hamlit/compare/v1.6.1...v1.6.2
457
+ [1.6.3]: https://github.com/k0kubun/hamlit/compare/v1.6.2...v1.6.3
458
+ [1.6.4]: https://github.com/k0kubun/hamlit/compare/v1.6.3...v1.6.4
459
+ [1.6.5]: https://github.com/k0kubun/hamlit/compare/v1.6.4...v1.6.5
460
+ [1.6.6]: https://github.com/k0kubun/hamlit/compare/v1.6.5...v1.6.6
461
+ [1.6.7]: https://github.com/k0kubun/hamlit/compare/v1.6.6...v1.6.7
462
+ [1.7.0]: https://github.com/k0kubun/hamlit/compare/v1.6.7...v1.7.0
463
+ [1.7.1]: https://github.com/k0kubun/hamlit/compare/v1.7.0...v1.7.1
464
+ [1.7.2]: https://github.com/k0kubun/hamlit/compare/v1.7.1...v1.7.2
465
+ [2.0.0]: https://github.com/k0kubun/hamlit/compare/v1.7.2...v2.0.0
466
+ [2.0.1]: https://github.com/k0kubun/hamlit/compare/v2.0.0...v2.0.1
467
+ [2.0.2]: https://github.com/k0kubun/hamlit/compare/v2.0.1...v2.0.2
468
+ [HEAD]: https://github.com/k0kubun/hamlit/compare/v2.0.1...HEAD
data/README.md CHANGED
@@ -10,17 +10,17 @@ Hamlit is a high performance [Haml](https://github.com/haml/haml) implementation
10
10
  ### What is Hamlit?
11
11
  Hamlit is another implementation of [Haml](https://github.com/haml/haml).
12
12
  With some [limitations](REFERENCE.md#limitations) by design for performance,
13
- Hamlit is **7.16x times faster** than original haml gem in [this benchmark](benchmark/slim/run-benchmarks.rb),
14
- which is an HTML-escaped version of [slim-template/slim's one](https://github.com/slim-template/slim/blob/v3.0.6/benchmarks/run-benchmarks.rb) for fairness.
13
+ Hamlit is **8.54x times faster** than original haml gem in [this benchmark](benchmark/slim/run-benchmarks.rb),
14
+ which is an HTML-escaped version of [slim-template/slim's one](https://github.com/slim-template/slim/blob/v3.0.6/benchmarks/run-benchmarks.rb) for fairness. ([Result on Travis](https://travis-ci.org/k0kubun/hamlit/jobs/93928561))
15
15
 
16
- ![Hamlit Benchmark](http://i.gyazo.com/4fe00ff2ac2fa959dfcf86a5e27dc914.png)
16
+ ![Hamlit Benchmark](https://i.gyazo.com/ac9eb910c7261cc0181bd7427c860d79.png)
17
17
 
18
18
  ```
19
- erubis: 114501.6 i/s
20
- hamlit: 112888.1 i/s - 1.01x slower
21
- slim: 103298.5 i/s - 1.11x slower
22
- faml: 88675.4 i/s - 1.29x slower
23
- haml: 15750.6 i/s - 7.27x slower
19
+ hamlit v2.0.1: 122622.3 i/s
20
+ faml v0.7.0: 94239.1 i/s - 1.30x slower
21
+ slim v3.0.6: 89143.0 i/s - 1.38x slower
22
+ erubis v2.7.0: 65047.8 i/s - 1.89x slower
23
+ haml v5.0.0.beta.2: 14363.6 i/s - 8.54x slower
24
24
  ```
25
25
 
26
26
  ### Why is Hamlit faster?
@@ -0,0 +1,4 @@
1
+ - disabled = false
2
+ %input{ disabled: disabled }
3
+ - disabled = true
4
+ %input{ disabled: disabled }
data/bin/bench CHANGED
@@ -15,7 +15,7 @@ class Bench < Thor
15
15
  option :compile, type: :boolean, aliases: ['-c']
16
16
  option :show_code, type: :boolean, aliases: ['-s']
17
17
  def bench(*files)
18
- files.each { |file| render(file) unless options[:compile] }
18
+ files.each { |file| render(file) }
19
19
  files.each { |file| compile(file) if options[:compile] }
20
20
  files.each { |file| code(file) if options[:show_code] }
21
21
  end
@@ -1,7 +1,7 @@
1
1
  require 'hamlit/ruby_expression'
2
2
 
3
3
  module Hamlit
4
- class HashParser
4
+ class AttributeParser
5
5
  class ParseSkip < StandardError
6
6
  end
7
7
 
data/lib/hamlit/cli.rb CHANGED
@@ -50,12 +50,16 @@ module Hamlit
50
50
 
51
51
  def generate_ast(file)
52
52
  template = File.read(file)
53
- Hamlit::Parser.new(escape_html: true, escape_attrs: true, ugly: true).call(template)
53
+ Hamlit::Parser.new(engine_options).call(template)
54
54
  end
55
55
 
56
56
  def generate_temple(file)
57
57
  ast = generate_ast(file)
58
- Hamlit::Compiler.new.call(ast)
58
+ Hamlit::Compiler.new(engine_options).call(ast)
59
+ end
60
+
61
+ def engine_options
62
+ Hamlit::Engine.options
59
63
  end
60
64
 
61
65
  # Flexible default_task, compatible with haml's CLI
@@ -1,5 +1,5 @@
1
1
  require 'hamlit/attribute_builder'
2
- require 'hamlit/hash_parser'
2
+ require 'hamlit/attribute_parser'
3
3
  require 'hamlit/ruby_expression'
4
4
  require 'hamlit/static_analyzer'
5
5
  require 'hamlit/string_interpolation'
@@ -18,7 +18,7 @@ module Hamlit
18
18
  hashes = []
19
19
  return runtime_compile(node) if node.value[:object_ref] != :nil
20
20
  node.value[:attributes_hashes].each do |attribute_str|
21
- hash = HashParser.parse(attribute_str)
21
+ hash = AttributeParser.parse(attribute_str)
22
22
  return runtime_compile(node) unless hash
23
23
  hashes << hash
24
24
  end
@@ -61,7 +61,7 @@ module Hamlit
61
61
  end
62
62
 
63
63
  def self_closing?(node)
64
- return true if @autoclose.include?(node.value[:name])
64
+ return true if @autoclose && @autoclose.include?(node.value[:name])
65
65
  node.value[:self_closing]
66
66
  end
67
67
  end
@@ -1,3 +1,3 @@
1
1
  module Hamlit
2
- VERSION = '2.0.1'
2
+ VERSION = '2.0.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hamlit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-11-30 00:00:00.000000000 Z
11
+ date: 2015-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: escape_utils
@@ -289,10 +289,12 @@ files:
289
289
  - benchmark/dynamic_attributes/common_attribute.haml
290
290
  - benchmark/dynamic_attributes/data_attribute.haml
291
291
  - benchmark/dynamic_attributes/id_attribute.haml
292
+ - benchmark/dynamic_boolean_attribute.haml
292
293
  - benchmark/etc/attribute_builder.haml
293
294
  - benchmark/etc/real_sample.haml
294
295
  - benchmark/etc/real_sample.rb
295
296
  - benchmark/etc/static_analyzer.haml
297
+ - benchmark/etc/string_interpolation.haml
296
298
  - benchmark/etc/tags.haml
297
299
  - benchmark/ext/build_data.rb
298
300
  - benchmark/ext/build_id.rb
@@ -305,7 +307,6 @@ files:
305
307
  - benchmark/slim/view.erb
306
308
  - benchmark/slim/view.haml
307
309
  - benchmark/slim/view.slim
308
- - benchmark/string_interpolation.haml
309
310
  - benchmark/utils/benchmark_ips_extension.rb
310
311
  - bin/bench
311
312
  - bin/clone
@@ -341,6 +342,7 @@ files:
341
342
  - hamlit.gemspec
342
343
  - lib/hamlit.rb
343
344
  - lib/hamlit/attribute_builder.rb
345
+ - lib/hamlit/attribute_parser.rb
344
346
  - lib/hamlit/cli.rb
345
347
  - lib/hamlit/compiler.rb
346
348
  - lib/hamlit/compiler/attribute_compiler.rb
@@ -369,7 +371,6 @@ files:
369
371
  - lib/hamlit/filters/scss.rb
370
372
  - lib/hamlit/filters/text_base.rb
371
373
  - lib/hamlit/filters/tilt_base.rb
372
- - lib/hamlit/hash_parser.rb
373
374
  - lib/hamlit/html.rb
374
375
  - lib/hamlit/identity.rb
375
376
  - lib/hamlit/object_ref.rb
@@ -418,3 +419,4 @@ signing_key:
418
419
  specification_version: 4
419
420
  summary: High Performance Haml Implementation
420
421
  test_files: []
422
+ has_rdoc: