hamlit 2.14.3-java → 2.14.4-java
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/ext/hamlit/hamlit.c +8 -13
- data/lib/hamlit/attribute_builder.rb +2 -2
- data/lib/hamlit/attribute_compiler.rb +4 -1
- data/lib/hamlit/version.rb +1 -1
- metadata +21 -20
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 62e629fef1bc222ab631aee99292c64ab9c67d8c590991c44dfa43e673214548
|
|
4
|
+
data.tar.gz: f2aed6b260bec4896df12cfcea5aaa7a226efee73ea7a3df72a5018b8370f0a1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a6b0808eec0c088bffe3d3cb4073bdaf875544e76795084e51fad9dec48fcd672f208fb302495464e9d2b5d265f026622b14e51a7fe49fb5189a11dc4843f477
|
|
7
|
+
data.tar.gz: 6f0823f8141cbf3fc174c1b403d6c502c310fbe5dcaf40c421dda79424eb060532a194b41adbb021e9910d7f7a9b50dcd9acbcf8ed29e2162129e2fd8cbcea67
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file. This
|
|
|
4
4
|
project adheres to [Semantic Versioning](http://semver.org/). This change log is based upon
|
|
5
5
|
[keep-a-changelog](https://github.com/olivierlacan/keep-a-changelog).
|
|
6
6
|
|
|
7
|
+
## [2.14.4](https://github.com/k0kubun/hamlit/compare/v2.14.3...v2.14.4) - 2021-02-01
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Prevent another SEGV in a C extension after `GC.compact` [#177](https://github.com/k0kubun/hamlit/issues/177)
|
|
12
|
+
*Thanks to @stanhu*
|
|
13
|
+
|
|
7
14
|
## [2.14.3](https://github.com/k0kubun/hamlit/compare/v2.14.2...v2.14.3) - 2021-01-24
|
|
8
15
|
|
|
9
16
|
### Fixed
|
data/ext/hamlit/hamlit.c
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
VALUE mAttributeBuilder, mObjectRef;
|
|
8
8
|
static ID id_flatten, id_keys, id_parse, id_prepend, id_tr, id_uniq_bang;
|
|
9
|
-
static ID
|
|
9
|
+
static ID id_xhtml;
|
|
10
10
|
|
|
11
11
|
static VALUE str_aria, str_data, str_equal, str_hyphen, str_space, str_underscore;
|
|
12
12
|
|
|
@@ -342,13 +342,10 @@ merge_all_attrs(VALUE hashes)
|
|
|
342
342
|
}
|
|
343
343
|
|
|
344
344
|
int
|
|
345
|
-
is_boolean_attribute(VALUE key)
|
|
345
|
+
is_boolean_attribute(VALUE key, VALUE boolean_attributes)
|
|
346
346
|
{
|
|
347
|
-
VALUE boolean_attributes;
|
|
348
347
|
if (str_eq(rb_str_substr(key, 0, 5), "data-", 5)) return 1;
|
|
349
348
|
if (str_eq(rb_str_substr(key, 0, 5), "aria-", 5)) return 1;
|
|
350
|
-
|
|
351
|
-
boolean_attributes = rb_const_get(mAttributeBuilder, id_boolean_attributes);
|
|
352
349
|
return RTEST(rb_ary_includes(boolean_attributes, key));
|
|
353
350
|
}
|
|
354
351
|
|
|
@@ -418,7 +415,7 @@ hamlit_build_for_boolean(VALUE escape_attrs, VALUE quote, VALUE format, VALUE bu
|
|
|
418
415
|
}
|
|
419
416
|
|
|
420
417
|
static VALUE
|
|
421
|
-
hamlit_build(VALUE escape_attrs, VALUE quote, VALUE format, VALUE object_ref, VALUE hashes)
|
|
418
|
+
hamlit_build(VALUE escape_attrs, VALUE quote, VALUE format, VALUE boolean_attributes, VALUE object_ref, VALUE hashes)
|
|
422
419
|
{
|
|
423
420
|
long i;
|
|
424
421
|
VALUE attrs, buf, key, keys, value;
|
|
@@ -439,7 +436,7 @@ hamlit_build(VALUE escape_attrs, VALUE quote, VALUE format, VALUE object_ref, VA
|
|
|
439
436
|
hamlit_build_for_data(escape_attrs, quote, buf, value);
|
|
440
437
|
} else if (str_eq(key, "aria", 4)) {
|
|
441
438
|
hamlit_build_for_aria(escape_attrs, quote, buf, value);
|
|
442
|
-
} else if (is_boolean_attribute(key)) {
|
|
439
|
+
} else if (is_boolean_attribute(key, boolean_attributes)) {
|
|
443
440
|
hamlit_build_for_boolean(escape_attrs, quote, format, buf, key, value);
|
|
444
441
|
} else {
|
|
445
442
|
hamlit_build_for_others(escape_attrs, quote, buf, key, value);
|
|
@@ -498,10 +495,10 @@ rb_hamlit_build(int argc, VALUE *argv, RB_UNUSED_VAR(VALUE self))
|
|
|
498
495
|
{
|
|
499
496
|
VALUE array;
|
|
500
497
|
|
|
501
|
-
rb_check_arity(argc,
|
|
502
|
-
rb_scan_args(argc -
|
|
498
|
+
rb_check_arity(argc, 5, UNLIMITED_ARGUMENTS);
|
|
499
|
+
rb_scan_args(argc - 5, argv + 5, "*", &array);
|
|
503
500
|
|
|
504
|
-
return hamlit_build(argv[0], argv[1], argv[2], argv[3], array);
|
|
501
|
+
return hamlit_build(argv[0], argv[1], argv[2], argv[3], argv[4], array);
|
|
505
502
|
}
|
|
506
503
|
|
|
507
504
|
void
|
|
@@ -527,9 +524,7 @@ Init_hamlit(void)
|
|
|
527
524
|
id_prepend = rb_intern("prepend");
|
|
528
525
|
id_tr = rb_intern("tr");
|
|
529
526
|
id_uniq_bang = rb_intern("uniq!");
|
|
530
|
-
|
|
531
|
-
id_boolean_attributes = rb_intern("BOOLEAN_ATTRIBUTES");
|
|
532
|
-
id_xhtml = rb_intern("xhtml");
|
|
527
|
+
id_xhtml = rb_intern("xhtml");
|
|
533
528
|
|
|
534
529
|
// Consider using rb_interned_str() once we stop supporting Ruby 2.7.
|
|
535
530
|
rb_gc_register_mark_object(str_aria = rb_obj_freeze(rb_str_new_cstr("aria")));
|
|
@@ -13,7 +13,7 @@ module Hamlit::AttributeBuilder
|
|
|
13
13
|
# TruffleRuby does not implement `rb_ary_sort_bang`, etc.
|
|
14
14
|
if /java/ === RUBY_PLATFORM || RUBY_ENGINE == 'truffleruby'
|
|
15
15
|
class << self
|
|
16
|
-
def build(escape_attrs, quote, format, object_ref, *hashes)
|
|
16
|
+
def build(escape_attrs, quote, format, boolean_attributes, object_ref, *hashes)
|
|
17
17
|
hashes << Hamlit::ObjectRef.parse(object_ref) if object_ref
|
|
18
18
|
buf = []
|
|
19
19
|
hash = merge_all_attrs(hashes)
|
|
@@ -27,7 +27,7 @@ module Hamlit::AttributeBuilder
|
|
|
27
27
|
buf << " class=#{quote}#{build_class(escape_attrs, *hash[key])}#{quote}"
|
|
28
28
|
when 'data'.freeze
|
|
29
29
|
buf << build_data(escape_attrs, quote, *hash[key])
|
|
30
|
-
when *
|
|
30
|
+
when *boolean_attributes, /\Adata-/
|
|
31
31
|
build_boolean!(escape_attrs, quote, format, buf, key, hash[key])
|
|
32
32
|
else
|
|
33
33
|
buf << " #{key}=#{quote}#{escape_html(escape_attrs, hash[key].to_s)}#{quote}"
|
|
@@ -31,7 +31,10 @@ module Hamlit
|
|
|
31
31
|
attrs = []
|
|
32
32
|
attrs.unshift(node.value[:attributes].inspect) if node.value[:attributes] != {}
|
|
33
33
|
|
|
34
|
-
args = [
|
|
34
|
+
args = [
|
|
35
|
+
@escape_attrs.inspect, "#{@quote.inspect}.freeze", @format.inspect,
|
|
36
|
+
'::Hamlit::AttributeBuilder::BOOLEAN_ATTRIBUTES', node.value[:object_ref],
|
|
37
|
+
] + attrs
|
|
35
38
|
[:html, :attrs, [:dynamic, "::Hamlit::AttributeBuilder.build(#{args.join(', ')}, #{node.value[:dynamic_attributes].to_literal})"]]
|
|
36
39
|
end
|
|
37
40
|
|
data/lib/hamlit/version.rb
CHANGED
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.14.
|
|
4
|
+
version: 2.14.4
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- Takashi Kokubun
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-01
|
|
11
|
+
date: 2021-02-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -17,8 +17,8 @@ dependencies:
|
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
18
|
version: 0.8.2
|
|
19
19
|
name: temple
|
|
20
|
-
type: :runtime
|
|
21
20
|
prerelease: false
|
|
21
|
+
type: :runtime
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
@@ -31,8 +31,8 @@ dependencies:
|
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
32
|
version: '0'
|
|
33
33
|
name: thor
|
|
34
|
-
type: :runtime
|
|
35
34
|
prerelease: false
|
|
35
|
+
type: :runtime
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - ">="
|
|
@@ -45,8 +45,8 @@ dependencies:
|
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
46
|
version: '0'
|
|
47
47
|
name: tilt
|
|
48
|
-
type: :runtime
|
|
49
48
|
prerelease: false
|
|
49
|
+
type: :runtime
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - ">="
|
|
@@ -59,8 +59,8 @@ dependencies:
|
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
60
|
version: '0'
|
|
61
61
|
name: benchmark_driver
|
|
62
|
-
type: :development
|
|
63
62
|
prerelease: false
|
|
63
|
+
type: :development
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - ">="
|
|
@@ -73,8 +73,8 @@ dependencies:
|
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
74
|
version: '0'
|
|
75
75
|
name: bundler
|
|
76
|
-
type: :development
|
|
77
76
|
prerelease: false
|
|
77
|
+
type: :development
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - ">="
|
|
@@ -87,8 +87,8 @@ dependencies:
|
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
88
|
version: '0'
|
|
89
89
|
name: coffee-script
|
|
90
|
-
type: :development
|
|
91
90
|
prerelease: false
|
|
91
|
+
type: :development
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - ">="
|
|
@@ -101,8 +101,8 @@ dependencies:
|
|
|
101
101
|
- !ruby/object:Gem::Version
|
|
102
102
|
version: '0'
|
|
103
103
|
name: erubi
|
|
104
|
-
type: :development
|
|
105
104
|
prerelease: false
|
|
105
|
+
type: :development
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
108
|
- - ">="
|
|
@@ -115,8 +115,8 @@ dependencies:
|
|
|
115
115
|
- !ruby/object:Gem::Version
|
|
116
116
|
version: '5'
|
|
117
117
|
name: haml
|
|
118
|
-
type: :development
|
|
119
118
|
prerelease: false
|
|
119
|
+
type: :development
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
122
|
- - ">="
|
|
@@ -129,8 +129,8 @@ dependencies:
|
|
|
129
129
|
- !ruby/object:Gem::Version
|
|
130
130
|
version: '0'
|
|
131
131
|
name: less
|
|
132
|
-
type: :development
|
|
133
132
|
prerelease: false
|
|
133
|
+
type: :development
|
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements:
|
|
136
136
|
- - ">="
|
|
@@ -143,8 +143,8 @@ dependencies:
|
|
|
143
143
|
- !ruby/object:Gem::Version
|
|
144
144
|
version: '1.1'
|
|
145
145
|
name: minitest-reporters
|
|
146
|
-
type: :development
|
|
147
146
|
prerelease: false
|
|
147
|
+
type: :development
|
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
149
|
requirements:
|
|
150
150
|
- - "~>"
|
|
@@ -157,8 +157,8 @@ dependencies:
|
|
|
157
157
|
- !ruby/object:Gem::Version
|
|
158
158
|
version: '4.0'
|
|
159
159
|
name: rails
|
|
160
|
-
type: :development
|
|
161
160
|
prerelease: false
|
|
161
|
+
type: :development
|
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
163
|
requirements:
|
|
164
164
|
- - ">="
|
|
@@ -171,8 +171,8 @@ dependencies:
|
|
|
171
171
|
- !ruby/object:Gem::Version
|
|
172
172
|
version: '0'
|
|
173
173
|
name: rake
|
|
174
|
-
type: :development
|
|
175
174
|
prerelease: false
|
|
175
|
+
type: :development
|
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
|
177
177
|
requirements:
|
|
178
178
|
- - ">="
|
|
@@ -185,8 +185,8 @@ dependencies:
|
|
|
185
185
|
- !ruby/object:Gem::Version
|
|
186
186
|
version: '0'
|
|
187
187
|
name: rake-compiler
|
|
188
|
-
type: :development
|
|
189
188
|
prerelease: false
|
|
189
|
+
type: :development
|
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
191
191
|
requirements:
|
|
192
192
|
- - ">="
|
|
@@ -199,8 +199,8 @@ dependencies:
|
|
|
199
199
|
- !ruby/object:Gem::Version
|
|
200
200
|
version: '0'
|
|
201
201
|
name: sass
|
|
202
|
-
type: :development
|
|
203
202
|
prerelease: false
|
|
203
|
+
type: :development
|
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
|
205
205
|
requirements:
|
|
206
206
|
- - ">="
|
|
@@ -213,8 +213,8 @@ dependencies:
|
|
|
213
213
|
- !ruby/object:Gem::Version
|
|
214
214
|
version: '0'
|
|
215
215
|
name: slim
|
|
216
|
-
type: :development
|
|
217
216
|
prerelease: false
|
|
217
|
+
type: :development
|
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
|
219
219
|
requirements:
|
|
220
220
|
- - ">="
|
|
@@ -227,8 +227,8 @@ dependencies:
|
|
|
227
227
|
- !ruby/object:Gem::Version
|
|
228
228
|
version: '0'
|
|
229
229
|
name: string_template
|
|
230
|
-
type: :development
|
|
231
230
|
prerelease: false
|
|
231
|
+
type: :development
|
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
|
233
233
|
requirements:
|
|
234
234
|
- - ">="
|
|
@@ -241,8 +241,8 @@ dependencies:
|
|
|
241
241
|
- !ruby/object:Gem::Version
|
|
242
242
|
version: '0'
|
|
243
243
|
name: unindent
|
|
244
|
-
type: :development
|
|
245
244
|
prerelease: false
|
|
245
|
+
type: :development
|
|
246
246
|
version_requirements: !ruby/object:Gem::Requirement
|
|
247
247
|
requirements:
|
|
248
248
|
- - ">="
|
|
@@ -390,7 +390,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
390
390
|
- !ruby/object:Gem::Version
|
|
391
391
|
version: '0'
|
|
392
392
|
requirements: []
|
|
393
|
-
|
|
393
|
+
rubyforge_project:
|
|
394
|
+
rubygems_version: 2.7.9
|
|
394
395
|
signing_key:
|
|
395
396
|
specification_version: 4
|
|
396
397
|
summary: High Performance Haml Implementation
|