haml 6.0.12-java → 6.1.0-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/.github/workflows/test.yml +1 -0
- data/CHANGELOG.md +5 -0
- data/lib/haml/compiler/script_compiler.rb +1 -3
- data/lib/haml/engine.rb +6 -4
- data/lib/haml/{escapable.rb → escape.rb} +1 -1
- data/lib/haml/escape_any.rb +21 -0
- data/lib/haml/{force_escapable.rb → force_escape.rb} +5 -5
- data/lib/haml/rails_template.rb +3 -1
- data/lib/haml/util.rb +1 -0
- data/lib/haml/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 147595059b4f0b4101d22c513864c0c84d80150e45aaf01056f5aa107bc813cf
|
4
|
+
data.tar.gz: a5b64fa5da7a110d35ac3dda6474850fc5e6ea58cdde991663c65aaa3b4c0afb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30b7b6705eef6a9501d7a6c62178c07045cba98473ef0b49d788d166bc7d7dbaa64dee2524bd9159c296a31f5b9a3d33bb13d98473e7b0c6fcdc9fb080224491
|
7
|
+
data.tar.gz: 1313af8b1a09c826712e72aec31241bf7fb8f08ed6a7b00648868b4043dd16da3941e5c93afbb3fb0785436cca5e807220b78fb02009513d348595de4c5f5c45
|
data/.github/workflows/test.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Haml Changelog
|
2
2
|
|
3
|
+
## 6.1.0
|
4
|
+
|
5
|
+
* Optimize away a `to_s` call on `=` scripts
|
6
|
+
* Fix escaping for objects that return an `html_safe` string on `to_s` [#1117](https://github.com/haml/haml/issues/1117)
|
7
|
+
|
3
8
|
## 6.0.12
|
4
9
|
|
5
10
|
* Fix a whitespace removal with `>` and an `if`-`else` statement [#1114](https://github.com/haml/haml/issues/1114)
|
@@ -98,10 +98,8 @@ module Haml
|
|
98
98
|
def compile_script_result(result, node)
|
99
99
|
if !node.value[:escape_html] && node.value[:preserve]
|
100
100
|
result = find_and_preserve(result)
|
101
|
-
else
|
102
|
-
result = "(#{result}).to_s"
|
103
101
|
end
|
104
|
-
[:
|
102
|
+
[:escapeany, node.value[:escape_html], [:dynamic, result]]
|
105
103
|
end
|
106
104
|
|
107
105
|
def find_and_preserve(code)
|
data/lib/haml/engine.rb
CHANGED
@@ -4,8 +4,9 @@ require 'haml/parser'
|
|
4
4
|
require 'haml/compiler'
|
5
5
|
require 'haml/html'
|
6
6
|
require 'haml/string_splitter'
|
7
|
-
require 'haml/
|
8
|
-
require 'haml/
|
7
|
+
require 'haml/escape'
|
8
|
+
require 'haml/escape_any'
|
9
|
+
require 'haml/force_escape'
|
9
10
|
require 'haml/dynamic_merger'
|
10
11
|
require 'haml/ambles'
|
11
12
|
require 'haml/whitespace'
|
@@ -32,8 +33,9 @@ module Haml
|
|
32
33
|
use HTML
|
33
34
|
use StringSplitter
|
34
35
|
filter :StaticAnalyzer
|
35
|
-
use
|
36
|
-
use
|
36
|
+
use Escape
|
37
|
+
use EscapeAny
|
38
|
+
use ForceEscape
|
37
39
|
filter :ControlFlow
|
38
40
|
use Ambles
|
39
41
|
filter :MultiFlattener
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'haml/escape'
|
3
|
+
|
4
|
+
module Haml
|
5
|
+
# This module allows Temple::Filter to dispatch :fescape on `#compile`.
|
6
|
+
module EscapeanyDispathcer
|
7
|
+
def on_escapeany(flag, exp)
|
8
|
+
[:escapeany, flag, compile(exp)]
|
9
|
+
end
|
10
|
+
end
|
11
|
+
::Temple::Filter.include EscapeanyDispathcer
|
12
|
+
|
13
|
+
# Unlike Haml::Escape, this calls to_s when not escaped.
|
14
|
+
class EscapeAny < Escape
|
15
|
+
alias_method :on_escapeany, :on_escape
|
16
|
+
|
17
|
+
def on_dynamic(value)
|
18
|
+
[:dynamic, @escape ? @escape_code % value : "(#{value}).to_s"]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'haml/
|
2
|
+
require 'haml/escape'
|
3
3
|
|
4
4
|
module Haml
|
5
5
|
# This module allows Temple::Filter to dispatch :fescape on `#compile`.
|
@@ -10,8 +10,8 @@ module Haml
|
|
10
10
|
end
|
11
11
|
::Temple::Filter.include FescapeDispathcer
|
12
12
|
|
13
|
-
# Unlike Haml::
|
14
|
-
class
|
13
|
+
# Unlike Haml::Escape, this escapes value even if it's html_safe.
|
14
|
+
class ForceEscape < Escape
|
15
15
|
def initialize(opts = {})
|
16
16
|
super
|
17
17
|
@escape_code = options[:escape_code] || "::Haml::Util.escape_html((%s))"
|
@@ -20,8 +20,8 @@ module Haml
|
|
20
20
|
|
21
21
|
alias_method :on_fescape, :on_escape
|
22
22
|
|
23
|
-
#
|
24
|
-
# This method is not used if it's inserted after Haml::
|
23
|
+
# ForceEscape doesn't touch :escape expression.
|
24
|
+
# This method is not used if it's inserted after Haml::Escape.
|
25
25
|
def on_escape(flag, exp)
|
26
26
|
[:escape, flag, compile(exp)]
|
27
27
|
end
|
data/lib/haml/rails_template.rb
CHANGED
data/lib/haml/util.rb
CHANGED
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.1.0
|
5
5
|
platform: java
|
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-
|
15
|
+
date: 2022-12-10 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
requirement: !ruby/object:Gem::Requirement
|
@@ -300,7 +300,8 @@ files:
|
|
300
300
|
- lib/haml/dynamic_merger.rb
|
301
301
|
- lib/haml/engine.rb
|
302
302
|
- lib/haml/error.rb
|
303
|
-
- lib/haml/
|
303
|
+
- lib/haml/escape.rb
|
304
|
+
- lib/haml/escape_any.rb
|
304
305
|
- lib/haml/filters.rb
|
305
306
|
- lib/haml/filters/base.rb
|
306
307
|
- lib/haml/filters/cdata.rb
|
@@ -318,7 +319,7 @@ files:
|
|
318
319
|
- lib/haml/filters/scss.rb
|
319
320
|
- lib/haml/filters/text_base.rb
|
320
321
|
- lib/haml/filters/tilt_base.rb
|
321
|
-
- lib/haml/
|
322
|
+
- lib/haml/force_escape.rb
|
322
323
|
- lib/haml/helpers.rb
|
323
324
|
- lib/haml/html.rb
|
324
325
|
- lib/haml/identity.rb
|