expressive 0.0.28 → 0.0.29

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NjBiY2RjOWUzNTlmYmQzMGQzMWM5YzQ4NWQ2NTJiN2FlMTZkNjE3Zg==
5
+ data.tar.gz: !binary |-
6
+ NTIzMjJhNGYxMDBhN2M0ZDYyM2UwYzFiYjZlOGQ2N2UzMDA5NmU2Yw==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ ZDA0ODU0NzI4OTM5Y2Q5OTdmY2YzM2I3YThiNjE3ODY5MDg3MTNiMzYzNTM3
10
+ MmE1OGE4ZTcxYmE0MzFiZDhkYTZhNDc3YzIwOWYyZGY2YjZmY2QyZjliZjUy
11
+ Mzk2ZDc0MzcwYTllNGJkY2IyZDhmOTgwMDI5Mjk0MjAyYThhYjI=
12
+ data.tar.gz: !binary |-
13
+ ZGQ2ZGJkNmM4ZGFlMzZkY2Y1Y2NjMTZiYWNhNWNmZGFiZWVlZGQ4YTNkZmU5
14
+ M2MxMTYzZjBkZjlmNTdlOGNhOWU0NDE2ZDExYmJmNzRmM2Q0MGI3YmM5MjA5
15
+ YTA0NjZiZTA2OTk2NmQ3NWUyZGFiYTRmOTE0NzQzMDVkNjc4NWY=
@@ -1,3 +1,3 @@
1
1
  module Expressive
2
- VERSION = "0.0.28"
2
+ VERSION = "0.0.29"
3
3
  end
data/lib/scope.rb CHANGED
@@ -28,7 +28,11 @@ module Expressive
28
28
  end
29
29
 
30
30
  def [](name)
31
- @symbols[name] || @parent[name]
31
+ if @symbols[name].nil?
32
+ @parent[name]
33
+ else
34
+ @symbols[name]
35
+ end
32
36
  end
33
37
 
34
38
  def []=(name, value)
@@ -66,6 +66,8 @@ describe "Expressive" do
66
66
  it { Expressive.run("(sum )").should eql 0 }
67
67
  it { Expressive.run("(- (sum 1 5 7) 3)").should eql 10.0}
68
68
  it { Expressive.run("(round 0.12345 2)").should eql 0.12}
69
+ it { Expressive.run("(round 0.45 0)").should eql 0}
70
+ it { Expressive.run("(round 0.55 0)").should eql 1}
69
71
  end
70
72
 
71
73
  describe "understands comparisson" do
@@ -93,6 +95,11 @@ describe "Expressive" do
93
95
 
94
96
  describe "understands conditional statements" do
95
97
  it { Expressive.run('(if (> 5 4) "greater" "not so greater")').should eql "greater" }
98
+ it { Expressive.run('(if (= 5.2473 5.3473) true false)').should eql false }
99
+ it { Expressive.run('(if (= 5.3473 5.3473) true false)').should eql true }
100
+ it { Expressive.run('(if (= ($round 5.2473 2) ($round 5.3473 2)) true false)').should eql false }
101
+ it { Expressive.run('(if (= ($round 5.2473 1) ($round 5.3473 1)) true false)').should eql false }
102
+ it { Expressive.run('(if (= ($round 5.3473 1) ($round 5.3473 1)) true false)').should eql true }
96
103
 
97
104
  context "it understands the need for commas (if you like that kind of thing" do
98
105
  it { Expressive.run('(if (< 5 4), "greater", "not so greater")').should eql "not so greater" }
@@ -253,6 +260,29 @@ EOH
253
260
  end
254
261
 
255
262
  describe "understands the modification of scope" do
263
+
264
+ it "works" do
265
+ @scope['total_payment_amount'] = 2.32
266
+ @scope['refund_amount'] = 2.32
267
+ @scope['payment_reconciled'] = "asdf"
268
+ Expressive.run('(if (= ($round total_payment_amount 2) ($round refund_amount 2)) true false)', @scope).should eql true
269
+ Expressive.run('(if (= ($round total_payment_amount 2) ($round refund_amount 2)) true, false)', @scope).should eql true
270
+ Expressive.run('(= (- ($round total_payment_amount 2) ($round refund_amount 2)) 0)', @scope).should eql true
271
+ Expressive.run('(set payment_reconciled (if (= ($round total_payment_amount 2) ($round refund_amount 2)) true false))', @scope)
272
+ @scope['payment_reconciled'].should eql true
273
+
274
+ @scope['total_payment_amount'] = 3
275
+ @scope['refund_amount'] = 2.32
276
+ @scope['payment_reconciled'] = "asdf"
277
+ Expressive.run('(if (= ($round total_payment_amount 2) ($round refund_amount 2)) true false)', @scope).should eql false
278
+ Expressive.run('(if (= ($round total_payment_amount 2) ($round refund_amount 2)) true, false)', @scope).should eql false
279
+ Expressive.run('(= (- ($round total_payment_amount 2) ($round refund_amount 2)) 0)', @scope).should eql false
280
+ Expressive.run('(set payment_reconciled (if (= ($round total_payment_amount 2) ($round refund_amount 2)) true false))', @scope)
281
+ puts @scope['payment_reconciled']
282
+ @scope['payment_reconciled'].should eql false
283
+
284
+ end
285
+
256
286
  it "using single set commands" do
257
287
  @scope['vsi'] = 'oldvalue'
258
288
  Expressive.run('(set vsi "vsi1234")', @scope).should eql "vsi1234"
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expressive
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.28
5
- prerelease:
4
+ version: 0.0.29
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ijonas Kisselbach
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-01-24 00:00:00.000000000 Z
11
+ date: 2014-02-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: ruby_gntp
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rdoc
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: bundler
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: guard
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ~>
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ~>
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: guard-rspec
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ~>
108
95
  - !ruby/object:Gem::Version
@@ -110,7 +97,6 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: webmock
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ~>
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - ~>
124
109
  - !ruby/object:Gem::Version
@@ -126,7 +111,6 @@ dependencies:
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: pry
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - ~>
132
116
  - !ruby/object:Gem::Version
@@ -134,7 +118,6 @@ dependencies:
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
122
  - - ~>
140
123
  - !ruby/object:Gem::Version
@@ -142,7 +125,6 @@ dependencies:
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: timecop
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
129
  - - ~>
148
130
  - !ruby/object:Gem::Version
@@ -150,7 +132,6 @@ dependencies:
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
136
  - - ~>
156
137
  - !ruby/object:Gem::Version
@@ -158,7 +139,6 @@ dependencies:
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: rake
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
143
  - - ! '>='
164
144
  - !ruby/object:Gem::Version
@@ -166,7 +146,6 @@ dependencies:
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
150
  - - ! '>='
172
151
  - !ruby/object:Gem::Version
@@ -174,7 +153,6 @@ dependencies:
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: polyglot
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
157
  - - ~>
180
158
  - !ruby/object:Gem::Version
@@ -182,7 +160,6 @@ dependencies:
182
160
  type: :runtime
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
164
  - - ~>
188
165
  - !ruby/object:Gem::Version
@@ -190,7 +167,6 @@ dependencies:
190
167
  - !ruby/object:Gem::Dependency
191
168
  name: json
192
169
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
170
  requirements:
195
171
  - - ! '>='
196
172
  - !ruby/object:Gem::Version
@@ -198,7 +174,6 @@ dependencies:
198
174
  type: :runtime
199
175
  prerelease: false
200
176
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
177
  requirements:
203
178
  - - ! '>='
204
179
  - !ruby/object:Gem::Version
@@ -206,7 +181,6 @@ dependencies:
206
181
  - !ruby/object:Gem::Dependency
207
182
  name: treetop
208
183
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
184
  requirements:
211
185
  - - ~>
212
186
  - !ruby/object:Gem::Version
@@ -214,7 +188,6 @@ dependencies:
214
188
  type: :runtime
215
189
  prerelease: false
216
190
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
191
  requirements:
219
192
  - - ~>
220
193
  - !ruby/object:Gem::Version
@@ -222,7 +195,6 @@ dependencies:
222
195
  - !ruby/object:Gem::Dependency
223
196
  name: awesome_print
224
197
  requirement: !ruby/object:Gem::Requirement
225
- none: false
226
198
  requirements:
227
199
  - - ~>
228
200
  - !ruby/object:Gem::Version
@@ -230,7 +202,6 @@ dependencies:
230
202
  type: :runtime
231
203
  prerelease: false
232
204
  version_requirements: !ruby/object:Gem::Requirement
233
- none: false
234
205
  requirements:
235
206
  - - ~>
236
207
  - !ruby/object:Gem::Version
@@ -238,7 +209,6 @@ dependencies:
238
209
  - !ruby/object:Gem::Dependency
239
210
  name: rest-client
240
211
  requirement: !ruby/object:Gem::Requirement
241
- none: false
242
212
  requirements:
243
213
  - - ~>
244
214
  - !ruby/object:Gem::Version
@@ -246,7 +216,6 @@ dependencies:
246
216
  type: :runtime
247
217
  prerelease: false
248
218
  version_requirements: !ruby/object:Gem::Requirement
249
- none: false
250
219
  requirements:
251
220
  - - ~>
252
221
  - !ruby/object:Gem::Version
@@ -282,33 +251,26 @@ files:
282
251
  - spec/webhook_examples.rb
283
252
  homepage: http://github.com/emergeadapt/expressive
284
253
  licenses: []
254
+ metadata: {}
285
255
  post_install_message:
286
256
  rdoc_options: []
287
257
  require_paths:
288
258
  - lib
289
259
  required_ruby_version: !ruby/object:Gem::Requirement
290
- none: false
291
260
  requirements:
292
261
  - - ! '>='
293
262
  - !ruby/object:Gem::Version
294
263
  version: '0'
295
- segments:
296
- - 0
297
- hash: 2507656080840932177
298
264
  required_rubygems_version: !ruby/object:Gem::Requirement
299
- none: false
300
265
  requirements:
301
266
  - - ! '>='
302
267
  - !ruby/object:Gem::Version
303
268
  version: '0'
304
- segments:
305
- - 0
306
- hash: 2507656080840932177
307
269
  requirements: []
308
270
  rubyforge_project:
309
- rubygems_version: 1.8.24
271
+ rubygems_version: 2.0.3
310
272
  signing_key:
311
- specification_version: 3
273
+ specification_version: 4
312
274
  summary: Scheme-like language for manipulating CaseBlocks cases
313
275
  test_files:
314
276
  - spec/expressive_spec.rb