teer 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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