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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d3ca853193a72ec721fcd7c25abe2a20d12aae0515c10932f70dfdc2e9acbdc
4
- data.tar.gz: 29a5486a0a33be539ae5ebcd3451e9037ab49d404428e4254d50b13a310bf88a
3
+ metadata.gz: 596efc44c3293a8a3049ee3237a2c2850b5af0096cf401468eade5b6345420c1
4
+ data.tar.gz: 53bc54ff807d5eb487fe8574394ec4532e9f522469d1294fd4b634f5283e3dd0
5
5
  SHA512:
6
- metadata.gz: b6f82b3b2940ef616a6fb77b690eae714fdbeae2fcef8c4becf4793fc8a7f7e70eff6fafa02098c169a1e0ca910f16df2e062e0cefc6f8fd6808c0bc7f14e2b6
7
- data.tar.gz: c2b1b73c83d878ac7f84ef05bb4c1b354e1fe5dae7cdc8dfc9aa05d680edc893fcdb8c746d95ec29bf95bdd0fa00462046052f29b4054232f34f4704b50f3a82
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
- raise ArgumentError, "Could not parse variables in string: '#{string}'"
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) && eval(k, @store.instance_eval { binding })
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
@@ -1,3 +1,3 @@
1
1
  module Teer
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Ramotowski