teer 1.0.1 → 1.0.2
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/lib/teer/engine.rb +15 -3
- data/lib/teer/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 596efc44c3293a8a3049ee3237a2c2850b5af0096cf401468eade5b6345420c1
|
4
|
+
data.tar.gz: 53bc54ff807d5eb487fe8574394ec4532e9f522469d1294fd4b634f5283e3dd0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ce7372ae800b855691a47b697b5e994373287fa71db57cc72e6873cdc2c92d1803b2d95ff8d23c28e292bb64cdd7b756c89a636bfcd4b81ccff72260709cb14
|
7
|
+
data.tar.gz: ead6c277842110c63da076fbc932cbba9fd085a0abf17d051dc69fd2d4c1378a028b3edeb2b53385829813ea195a8097941f1d0ebc446b1e1cf32b0bda624b37
|
data/lib/teer/engine.rb
CHANGED
@@ -68,8 +68,12 @@ module Teer
|
|
68
68
|
@interpolate ||= proc { |string|
|
69
69
|
begin
|
70
70
|
@handlebars.compile(string).call(@store.to_h)
|
71
|
-
rescue StandardError
|
72
|
-
|
71
|
+
rescue StandardError => e
|
72
|
+
if e.to_s.match(/Missing helper:/)
|
73
|
+
raise e
|
74
|
+
else
|
75
|
+
raise ArgumentError, "Could not parse variables in string: '#{string}'"
|
76
|
+
end
|
73
77
|
end
|
74
78
|
}
|
75
79
|
end
|
@@ -94,7 +98,7 @@ module Teer
|
|
94
98
|
if k == 'text' && (!v.nil? && !v.empty?)
|
95
99
|
@findings << (new_text = interpolate.call(v[@locale.to_s]))
|
96
100
|
unparsed_new_text = v[@locale.to_s]
|
97
|
-
elsif v.is_a?(Hash) &&
|
101
|
+
elsif v.is_a?(Hash) && catch_eval(k)
|
98
102
|
new_text = parse_template(v)
|
99
103
|
end
|
100
104
|
text += new_text + ' ' if new_text
|
@@ -103,5 +107,13 @@ module Teer
|
|
103
107
|
@pre_parsed_finding = CGI.unescapeHTML(pre_parsed_text[0...-1]) if !pre_parsed_text.nil? && !pre_parsed_text.empty?
|
104
108
|
CGI.unescapeHTML(text[0...-1]) if !text.nil? && !text.empty?
|
105
109
|
end
|
110
|
+
|
111
|
+
def catch_eval(k)
|
112
|
+
begin
|
113
|
+
eval(k, @store.instance_eval { binding })
|
114
|
+
rescue
|
115
|
+
raise ArgumentError, "Could not parse variables in condition: '#{k}'"
|
116
|
+
end
|
117
|
+
end
|
106
118
|
end
|
107
119
|
end
|
data/lib/teer/version.rb
CHANGED