expressive 0.0.6 → 0.0.7

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.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- expressive (0.0.6)
4
+ expressive (0.0.7)
5
5
  awesome_print (~> 1.0.2)
6
6
  json
7
7
  polyglot (~> 0.3.3)
@@ -34,6 +34,7 @@ GEM
34
34
  coderay (~> 1.0.5)
35
35
  method_source (~> 0.8)
36
36
  slop (~> 3.3.1)
37
+ rake (10.0.0)
37
38
  rb-fchange (0.0.5)
38
39
  ffi
39
40
  rb-fsevent (0.9.1)
@@ -54,7 +55,8 @@ GEM
54
55
  ruby_gntp (0.3.4)
55
56
  slop (3.3.2)
56
57
  thor (0.16.0)
57
- treetop (1.4.11)
58
+ timecop (0.5.3)
59
+ treetop (1.4.12)
58
60
  polyglot
59
61
  polyglot (>= 0.3.1)
60
62
  webmock (1.8.11)
@@ -70,7 +72,9 @@ DEPENDENCIES
70
72
  guard (~> 1.3.2)
71
73
  guard-rspec (~> 1.2.1)
72
74
  pry (~> 0.9.10)
75
+ rake
73
76
  rdoc (~> 3.12)
74
77
  rspec (~> 2.11.0)
75
78
  ruby_gntp (~> 0.3.4)
79
+ timecop (~> 0.5.3)
76
80
  webmock (~> 1.8.11)
@@ -24,6 +24,8 @@ Gem::Specification.new do |gem|
24
24
  gem.add_development_dependency "guard-rspec", "~> 1.2.1"
25
25
  gem.add_development_dependency "webmock", "~> 1.8.11"
26
26
  gem.add_development_dependency "pry", "~> 0.9.10"
27
+ gem.add_development_dependency "timecop", "~> 0.5.3"
28
+ gem.add_development_dependency "rake"
27
29
 
28
30
  gem.add_dependency "polyglot", "~> 0.3.3"
29
31
  gem.add_dependency "json"
@@ -1,3 +1,3 @@
1
1
  module Expressive
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -87,6 +87,16 @@ module Expressive
87
87
  perform_webhook(:get, scope, cells)
88
88
  end
89
89
 
90
+ syntax('date') do |scope, cells|
91
+ if cells.empty?
92
+ Date.today.to_time.utc
93
+ else
94
+ date = cells.first.text_value.gsub(/[\)\(]/, '')
95
+ values = date.split('/').map(&:to_i).reverse
96
+ Date.new(values[0], values[1], values[2]).to_time.utc
97
+ end
98
+ end
99
+
90
100
  define('+') {|a,b| a.to_f + b.to_f }
91
101
  define('-') {|a,b| a.to_f - b.to_f }
92
102
  define('*') {|a,b| a.to_f * b.to_f }
@@ -87,6 +87,34 @@ describe "Expressive" do
87
87
  end
88
88
  end
89
89
 
90
+ describe "understands the modification of scope" do
91
+ it "using single set commands" do
92
+ @scope['vsi'] = 'oldvalue'
93
+ Expressive.run('(set vsi "vsi1234")', @scope).should eql "vsi1234"
94
+ @scope['vsi'].should eql 'vsi1234'
95
+ end
96
+
97
+ it "using multiple set commands" do
98
+ Expressive.run('(and (set vsi "vsi1234") (set vso "vso1234"))', @scope).should eql true
99
+ @scope['vsi'].should eql 'vsi1234'
100
+ @scope['vso'].should eql 'vso1234'
101
+ end
102
+ end
103
+
104
+ describe "understands date parsing" do
105
+ it "will return the current date" do
106
+ now = Date.today.to_time.utc
107
+ Timecop.freeze(now) do
108
+ Expressive.run('(date)').should eql now
109
+ end
110
+ end
111
+
112
+ it "will return a date parsed from text" do
113
+ date = Date.new(2012, 11, 22).to_time.utc
114
+ Expressive.run('(date(22/11/2012))').should eql date
115
+ end
116
+ end
117
+
90
118
  describe "understands web-hook statements" do
91
119
  context "put" do
92
120
  it_should_behave_like "a webhook", :put
@@ -10,6 +10,7 @@ end
10
10
  require 'rspec'
11
11
  require 'webmock/rspec'
12
12
  require 'pry'
13
+ require 'timecop'
13
14
 
14
15
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
15
16
  $LOAD_PATH.unshift(File.dirname(__FILE__))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expressive
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-30 00:00:00.000000000 Z
12
+ date: 2012-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ruby_gntp
16
- requirement: &70342459798500 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 0.3.4
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70342459798500
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 0.3.4
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: rspec
27
- requirement: &70342459798000 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: 2.11.0
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70342459798000
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.11.0
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rdoc
38
- requirement: &70342459797500 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '3.12'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70342459797500
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '3.12'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: bundler
49
- requirement: &70342459796940 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ~>
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '1.0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70342459796940
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '1.0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: guard
60
- requirement: &70342459796300 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ~>
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: 1.3.2
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *70342459796300
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.3.2
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: guard-rspec
71
- requirement: &70342459795840 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ~>
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: 1.2.1
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *70342459795840
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.2.1
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: webmock
82
- requirement: &70342459795380 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ~>
@@ -87,10 +117,15 @@ dependencies:
87
117
  version: 1.8.11
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *70342459795380
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 1.8.11
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: pry
93
- requirement: &70342459794860 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ~>
@@ -98,10 +133,47 @@ dependencies:
98
133
  version: 0.9.10
99
134
  type: :development
100
135
  prerelease: false
101
- version_requirements: *70342459794860
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 0.9.10
142
+ - !ruby/object:Gem::Dependency
143
+ name: timecop
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: 0.5.3
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: 0.5.3
158
+ - !ruby/object:Gem::Dependency
159
+ name: rake
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
102
174
  - !ruby/object:Gem::Dependency
103
175
  name: polyglot
104
- requirement: &70342459794300 !ruby/object:Gem::Requirement
176
+ requirement: !ruby/object:Gem::Requirement
105
177
  none: false
106
178
  requirements:
107
179
  - - ~>
@@ -109,10 +181,15 @@ dependencies:
109
181
  version: 0.3.3
110
182
  type: :runtime
111
183
  prerelease: false
112
- version_requirements: *70342459794300
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ~>
188
+ - !ruby/object:Gem::Version
189
+ version: 0.3.3
113
190
  - !ruby/object:Gem::Dependency
114
191
  name: json
115
- requirement: &70342459793820 !ruby/object:Gem::Requirement
192
+ requirement: !ruby/object:Gem::Requirement
116
193
  none: false
117
194
  requirements:
118
195
  - - ! '>='
@@ -120,10 +197,15 @@ dependencies:
120
197
  version: '0'
121
198
  type: :runtime
122
199
  prerelease: false
123
- version_requirements: *70342459793820
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
124
206
  - !ruby/object:Gem::Dependency
125
207
  name: treetop
126
- requirement: &70342459792980 !ruby/object:Gem::Requirement
208
+ requirement: !ruby/object:Gem::Requirement
127
209
  none: false
128
210
  requirements:
129
211
  - - ~>
@@ -131,10 +213,15 @@ dependencies:
131
213
  version: 1.4.10
132
214
  type: :runtime
133
215
  prerelease: false
134
- version_requirements: *70342459792980
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ~>
220
+ - !ruby/object:Gem::Version
221
+ version: 1.4.10
135
222
  - !ruby/object:Gem::Dependency
136
223
  name: awesome_print
137
- requirement: &70342459792000 !ruby/object:Gem::Requirement
224
+ requirement: !ruby/object:Gem::Requirement
138
225
  none: false
139
226
  requirements:
140
227
  - - ~>
@@ -142,10 +229,15 @@ dependencies:
142
229
  version: 1.0.2
143
230
  type: :runtime
144
231
  prerelease: false
145
- version_requirements: *70342459792000
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ~>
236
+ - !ruby/object:Gem::Version
237
+ version: 1.0.2
146
238
  - !ruby/object:Gem::Dependency
147
239
  name: rest-client
148
- requirement: &70342459791520 !ruby/object:Gem::Requirement
240
+ requirement: !ruby/object:Gem::Requirement
149
241
  none: false
150
242
  requirements:
151
243
  - - ~>
@@ -153,7 +245,12 @@ dependencies:
153
245
  version: 1.6.7
154
246
  type: :runtime
155
247
  prerelease: false
156
- version_requirements: *70342459791520
248
+ version_requirements: !ruby/object:Gem::Requirement
249
+ none: false
250
+ requirements:
251
+ - - ~>
252
+ - !ruby/object:Gem::Version
253
+ version: 1.6.7
157
254
  description: Scheme-like language for manipulating CaseBlocks cases
158
255
  email:
159
256
  - ijonas@emergeadapt.com
@@ -195,7 +292,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
195
292
  version: '0'
196
293
  segments:
197
294
  - 0
198
- hash: 1097799900527536520
295
+ hash: -1539936988261072375
199
296
  required_rubygems_version: !ruby/object:Gem::Requirement
200
297
  none: false
201
298
  requirements:
@@ -204,10 +301,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
204
301
  version: '0'
205
302
  segments:
206
303
  - 0
207
- hash: 1097799900527536520
304
+ hash: -1539936988261072375
208
305
  requirements: []
209
306
  rubyforge_project:
210
- rubygems_version: 1.8.15
307
+ rubygems_version: 1.8.23
211
308
  signing_key:
212
309
  specification_version: 3
213
310
  summary: Scheme-like language for manipulating CaseBlocks cases