expressive 0.0.6 → 0.0.7

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