haml 6.0.5 → 6.0.6
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 +5 -0
- data/REFERENCE.md +38 -0
- data/lib/haml/attribute_builder.rb +9 -9
- data/lib/haml/util.rb +4 -4
- data/lib/haml/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 686b38a185b57f5b0ce392e06047aa1cadff2b54a0416d1a25b88d9c6d2675d5
|
4
|
+
data.tar.gz: 77abae61a0ca3eb4d42e30e15d3dad08781f4d0566f4565ddf40ff6609370e00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d392228708c2754f52dd073839a3b13d3fd4954a04cb11547c016d3a4ee4b792ef3242328df691d834515a94a500c63b5812d017be23805a5c0a6c40e818a60b
|
7
|
+
data.tar.gz: 82262e5e10fd2392a91034ab57621e8c80cd9156be99964642403687f2c6f6409154b7dd7b1ed12a68b9fc3809058a3284ef6bfac20f11ddcc7911be487cf9b8
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Haml Changelog
|
2
2
|
|
3
|
+
## 6.0.6
|
4
|
+
|
5
|
+
* Prevent CRuby from accidentally using the Ruby implementation fallback
|
6
|
+
* Reversing what v6.0.3 and v6.0.4 did, but still supporting Wasm.
|
7
|
+
|
3
8
|
## 6.0.5
|
4
9
|
|
5
10
|
* Resurrect `#haml_object_ref` support in an object reference [#1097](https://github.com/haml/haml/issues/1097)
|
data/REFERENCE.md
CHANGED
@@ -1201,6 +1201,44 @@ default. This filter is implemented using Tilt.
|
|
1201
1201
|
You can also define your own filters.
|
1202
1202
|
`Haml::Filters::YourCustomFilter#compile` should return
|
1203
1203
|
[a Temple expression](https://github.com/judofyr/temple/blob/master/EXPRESSIONS.md).
|
1204
|
+
|
1205
|
+
The simplest example of a filter might be something like:
|
1206
|
+
|
1207
|
+
```ruby
|
1208
|
+
class HelloFilter < Haml::Filters::Base
|
1209
|
+
def compile(_node)
|
1210
|
+
[:static, "hello world"]
|
1211
|
+
end
|
1212
|
+
end
|
1213
|
+
|
1214
|
+
Haml::Filters.registered[:hello] ||= HelloFilter
|
1215
|
+
```
|
1216
|
+
|
1217
|
+
A more complex complex example
|
1218
|
+
|
1219
|
+
```ruby
|
1220
|
+
class BetterFilter < Haml::Filters::Base
|
1221
|
+
def compile(node)
|
1222
|
+
temple = [:multi]
|
1223
|
+
temple << [:static, "hello "]
|
1224
|
+
temple << compile_text(node.value[:text])
|
1225
|
+
temple << [:static, " world"]
|
1226
|
+
temple
|
1227
|
+
end
|
1228
|
+
|
1229
|
+
private
|
1230
|
+
def compile_text(text)
|
1231
|
+
if ::Haml::Util.contains_interpolation?(text)
|
1232
|
+
[:dynamic, ::Haml::Util.unescape_interpolation(text)]
|
1233
|
+
else
|
1234
|
+
[:static, text]
|
1235
|
+
end
|
1236
|
+
end
|
1237
|
+
end
|
1238
|
+
|
1239
|
+
Haml::Filters.registered[:better] ||= BetterFilter
|
1240
|
+
```
|
1241
|
+
|
1204
1242
|
See {Haml::Filters} for examples.
|
1205
1243
|
|
1206
1244
|
## Multiline: `|` {#multiline}
|
@@ -9,15 +9,8 @@ module Haml::AttributeBuilder
|
|
9
9
|
itemscope allowfullscreen default inert sortable
|
10
10
|
truespeed typemustmatch download].freeze
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
# Haml::AttributeBuilder.build_id
|
15
|
-
# Haml::AttributeBuilder.build_class
|
16
|
-
# Haml::AttributeBuilder.build_data
|
17
|
-
# Haml::AttributeBuilder.build_aria
|
18
|
-
require 'haml/haml'
|
19
|
-
rescue LoadError
|
20
|
-
# For JRuby and Wasm, fallback to Ruby implementation when C extension is not available.
|
12
|
+
# For JRuby, TruffleRuby, and Wasm, fallback to Ruby implementation.
|
13
|
+
if /java|wasm/ === RUBY_PLATFORM || RUBY_ENGINE == 'truffleruby'
|
21
14
|
class << self
|
22
15
|
def build(escape_attrs, quote, format, boolean_attributes, object_ref, *hashes)
|
23
16
|
hashes << Haml::ObjectRef.parse(object_ref) if object_ref
|
@@ -170,5 +163,12 @@ module Haml::AttributeBuilder
|
|
170
163
|
end
|
171
164
|
end
|
172
165
|
end
|
166
|
+
else
|
167
|
+
# Haml::AttributeBuilder.build
|
168
|
+
# Haml::AttributeBuilder.build_id
|
169
|
+
# Haml::AttributeBuilder.build_class
|
170
|
+
# Haml::AttributeBuilder.build_data
|
171
|
+
# Haml::AttributeBuilder.build_aria
|
172
|
+
require 'haml/haml'
|
173
173
|
end
|
174
174
|
end
|
data/lib/haml/util.rb
CHANGED
@@ -14,15 +14,15 @@ module Haml
|
|
14
14
|
module Util
|
15
15
|
extend self
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
rescue LoadError
|
20
|
-
# For JRuby and Wasm, fallback to Ruby implementation when C extension is not available.
|
17
|
+
# For JRuby, TruffleRuby, and Wasm, fallback to Ruby implementation.
|
18
|
+
if /java|wasm/ === RUBY_PLATFORM || RUBY_ENGINE == 'truffleruby'
|
21
19
|
require 'cgi/escape'
|
22
20
|
|
23
21
|
def self.escape_html(html)
|
24
22
|
CGI.escapeHTML(html.to_s)
|
25
23
|
end
|
24
|
+
else
|
25
|
+
require 'haml/haml' # Haml::Util.escape_html
|
26
26
|
end
|
27
27
|
|
28
28
|
# TODO: Remove unescape_interpolation's workaround and get rid of `respond_to?`.
|
data/lib/haml/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.0.
|
4
|
+
version: 6.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Natalie Weizenbaum
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: exe
|
14
14
|
cert_chain: []
|
15
|
-
date: 2022-10-
|
15
|
+
date: 2022-10-09 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: temple
|