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 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