triggerable 0.1.4 → 0.1.5

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
  SHA1:
3
- metadata.gz: 9689f441a8bf248c604c1a93480e52ae104c3770
4
- data.tar.gz: b4642f6342c5e5c30b1fac31b707ead0162c2b41
3
+ metadata.gz: cd600c99b81640a4f19345bb5fc2699449d18553
4
+ data.tar.gz: 97968a4541609b339a6fb840a69fd35a0ba1cc9c
5
5
  SHA512:
6
- metadata.gz: a1e76b55c3810ab112eaf7a2148227f0525333608c8c7064c827bd650b4fdf87db4bfd763c1206beded0d19f8b3b85cf80523cbe71eef3cf86f36066d6ddc167
7
- data.tar.gz: cf4d50158a00bc4f9291b3d03fa19d44b7818176516ff010d19533b6b203517ed67c00f38a9c45aea478ca65661013b800a48749f05425b6da51b3e95c93a300
6
+ metadata.gz: cc8771acac90d02ea3fbea7dec517746d64f79865c6b7ba09165dde484ec73c134b6047fa725f5fa0c04bce18bc7561455b25571bb2a830ce517859ad37c9cda
7
+ data.tar.gz: 89dfb2ded39f4bec57136f221883d35c5e9f39e50f08a14432b9db9f6e98950e4eea32b3137b77402b40b801fcd4bfec611deacbbd3e5a18162da762a9b5e1cc
@@ -1,12 +1,7 @@
1
1
  module Conditions
2
2
  class After < ScheduleCondition
3
3
  def from
4
- case @math_condition
5
- when :greater_than, :less_than
6
- Time.now - @value
7
- when nil
8
- automation_time - @value - Engine.interval
9
- end
4
+ automation_time - @value - Engine.interval
10
5
  end
11
6
 
12
7
  def to
@@ -16,19 +11,10 @@ module Conditions
16
11
  private
17
12
 
18
13
  def condition
19
- if @math_condition.blank?
20
- And.new [
21
- GreaterThan.new(@field, from),
22
- LessThanOrEqualTo.new(@field, to)
23
- ]
24
- else
25
- case @math_condition
26
- when :greater_than
27
- LessThanOrEqualTo.new(@field, from)
28
- when :less_than
29
- GreaterThanOrEqualTo.new(@field, from)
30
- end
31
- end
14
+ And.new [
15
+ GreaterThan.new(@field, from),
16
+ LessThanOrEqualTo.new(@field, to)
17
+ ]
32
18
  end
33
19
  end
34
20
  end
@@ -1,40 +1,20 @@
1
1
  module Conditions
2
2
  class Before < ScheduleCondition
3
3
  def from
4
- case @math_condition
5
- when :greater_than
6
- Time.now
7
- when :less_than
8
- Time.now + @value
9
- when nil
10
- automation_time + @value
11
- end
4
+ automation_time + @value
12
5
  end
13
6
 
14
7
  def to
15
- case @math_condition
16
- when :greater_than
17
- Time.now + @value
18
- when nil
19
- automation_time + @value + Engine.interval
20
- end
8
+ automation_time + @value + Engine.interval
21
9
  end
22
10
 
23
11
  private
12
+
24
13
  def condition
25
- if @math_condition.blank?
26
- And.new [
27
- GreaterThanOrEqualTo.new(@field, from),
28
- LessThan.new(@field, to)
29
- ]
30
- else
31
- case @math_condition
32
- when :greater_than
33
- And.new([GreaterThanOrEqualTo.new(@field, from), LessThan.new(@field, to)])
34
- when :less_than
35
- GreaterThanOrEqualTo.new(@field, from)
36
- end
37
- end
14
+ And.new [
15
+ GreaterThanOrEqualTo.new(@field, from),
16
+ LessThan.new(@field, to)
17
+ ]
38
18
  end
39
19
  end
40
20
  end
@@ -1,11 +1,8 @@
1
1
  module Conditions
2
2
  class ScheduleCondition < FieldCondition
3
3
  def initialize field, value
4
+ @value = value.values.first if value.is_a?(Hash)
4
5
  super
5
- if value.is_a?(Hash)
6
- @math_condition = value.keys.first
7
- @value = value.values.first
8
- end
9
6
  end
10
7
 
11
8
  def true_for? object
@@ -17,6 +14,7 @@ module Conditions
17
14
  end
18
15
 
19
16
  protected
17
+
20
18
  # automation_time is Time.now rounded by Engine.interval
21
19
  def automation_time
22
20
  i = Engine.interval
@@ -1,3 +1,3 @@
1
1
  module Triggerable
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
@@ -194,160 +194,4 @@ describe 'Automations' do
194
194
  Engine.run_automations(15.minutes)
195
195
  expect(TestTask.count).to eq(2)
196
196
  end
197
-
198
- it 'after greater than 2 hours' do
199
- constantize_time_now Time.utc 2012, 9, 1, 11, 55
200
-
201
- TestTask.automation if: {and: [{updated_at: {after: {greater_than: 2.hours}}}, {status: {is: :solved}}, {kind: {is: :service}}]} do
202
- TestTask.create kind: 'follow up'
203
- end
204
-
205
- task = TestTask.create
206
- expect(TestTask.count).to eq(1)
207
- task.update_attributes status: 'solved', kind: 'service'
208
- expect(TestTask.count).to eq(1)
209
-
210
- constantize_time_now Time.utc 2012, 9, 1, 12, 10
211
- Engine.run_automations(15.minutes)
212
- expect(TestTask.count).to eq(1)
213
-
214
- constantize_time_now Time.utc 2012, 9, 1, 12, 25
215
- Engine.run_automations(15.minutes)
216
- expect(TestTask.count).to eq(1)
217
-
218
- constantize_time_now Time.utc 2012, 9, 1, 13, 55
219
- Engine.run_automations(15.minutes)
220
- expect(TestTask.count).to eq(2)
221
- expect(TestTask.all.last.kind).to eq('follow up')
222
-
223
- constantize_time_now Time.utc 2012, 9, 1, 14, 10
224
- Engine.run_automations(15.minutes)
225
- expect(TestTask.count).to eq(3)
226
-
227
- constantize_time_now Time.utc 2012, 9, 1, 14, 25
228
- Engine.run_automations(15.minutes)
229
- expect(TestTask.count).to eq(4)
230
- end
231
-
232
- it 'after less than 2 hours' do
233
- constantize_time_now Time.utc 2012, 9, 1, 11, 55
234
-
235
- TestTask.automation if: {and: [{updated_at: {after: {less_than: 2.hours}}}, {status: {is: :solved}}, {kind: {is: :service}}]} do
236
- TestTask.create kind: 'follow up'
237
- end
238
-
239
- task = TestTask.create
240
- expect(TestTask.count).to eq(1)
241
- task.update_attributes status: 'solved', kind: 'service'
242
- expect(TestTask.count).to eq(1)
243
-
244
- constantize_time_now Time.utc 2012, 9, 1, 12, 10
245
- Engine.run_automations(15.minutes)
246
- expect(TestTask.count).to eq(2)
247
-
248
- constantize_time_now Time.utc 2012, 9, 1, 12, 25
249
- Engine.run_automations(15.minutes)
250
- expect(TestTask.count).to eq(3)
251
-
252
- constantize_time_now Time.utc 2012, 9, 1, 13, 55
253
- Engine.run_automations(15.minutes)
254
- expect(TestTask.count).to eq(4)
255
- expect(TestTask.all.last.kind).to eq('follow up')
256
-
257
- constantize_time_now Time.utc 2012, 9, 1, 14, 10
258
- Engine.run_automations(15.minutes)
259
- expect(TestTask.count).to eq(4)
260
-
261
- constantize_time_now Time.utc 2012, 9, 1, 14, 25
262
- Engine.run_automations(15.minutes)
263
- expect(TestTask.count).to eq(4)
264
- end
265
-
266
- it 'before greater than 2 hours' do
267
- constantize_time_now Time.utc 2012, 9, 1, 11, 55
268
-
269
- TestTask.automation if: {and: [{scheduled_at: {before: {greater_than: 2.hours}}}, {status: {is: :solved}}, {kind: {is: :service}}]} do
270
- TestTask.create kind: 'follow up'
271
- end
272
-
273
- task = TestTask.create scheduled_at: Time.utc(2012, 9, 1, 20, 00)
274
- expect(TestTask.count).to eq(1)
275
- task.update_attributes status: 'solved', kind: 'service'
276
- expect(TestTask.count).to eq(1)
277
-
278
- constantize_time_now Time.utc 2012, 9, 1, 12, 10
279
- Engine.run_automations(15.minutes)
280
- expect(TestTask.count).to eq(1)
281
-
282
- constantize_time_now Time.utc 2012, 9, 1, 12, 25
283
- Engine.run_automations(15.minutes)
284
- expect(TestTask.count).to eq(1)
285
-
286
- constantize_time_now Time.utc 2012, 9, 1, 17, 55
287
- Engine.run_automations(15.minutes)
288
- expect(TestTask.count).to eq(1)
289
-
290
- constantize_time_now Time.utc 2012, 9, 1, 18, 00
291
- Engine.run_automations(15.minutes)
292
- expect(TestTask.count).to eq(1)
293
-
294
- constantize_time_now Time.utc 2012, 9, 1, 18, 30
295
- Engine.run_automations(15.minutes)
296
- expect(TestTask.count).to eq(2)
297
- expect(TestTask.all.last.kind).to eq('follow up')
298
-
299
- constantize_time_now Time.utc 2012, 9, 1, 19, 55
300
- Engine.run_automations(15.minutes)
301
- expect(TestTask.count).to eq(3)
302
-
303
- constantize_time_now Time.utc 2012, 9, 1, 20, 00
304
- Engine.run_automations(15.minutes)
305
- expect(TestTask.count).to eq(4)
306
-
307
- constantize_time_now Time.utc 2012, 9, 1, 20, 05
308
- Engine.run_automations(15.minutes)
309
- expect(TestTask.count).to eq(4)
310
-
311
- constantize_time_now Time.utc 2012, 9, 1, 20, 10
312
- Engine.run_automations(15.minutes)
313
- expect(TestTask.count).to eq(4)
314
- end
315
-
316
- it 'before less than 2 hours' do
317
- constantize_time_now Time.utc 2012, 9, 1, 11, 55
318
-
319
- TestTask.automation if: {and: [{scheduled_at: {before: {less_than: 2.hours}}}, {status: {is: :solved}}, {kind: {is: :service}}]} do
320
- TestTask.create kind: 'follow up'
321
- end
322
-
323
- task = TestTask.create scheduled_at: Time.utc(2012, 9, 1, 20, 00)
324
- expect(TestTask.count).to eq(1)
325
- task.update_attributes status: 'solved', kind: 'service'
326
- expect(TestTask.count).to eq(1)
327
-
328
- constantize_time_now Time.utc 2012, 9, 1, 12, 10
329
- Engine.run_automations(15.minutes)
330
- expect(TestTask.count).to eq(2)
331
-
332
- constantize_time_now Time.utc 2012, 9, 1, 12, 25
333
- Engine.run_automations(15.minutes)
334
- expect(TestTask.count).to eq(3)
335
-
336
- constantize_time_now Time.utc 2012, 9, 1, 17, 55
337
- Engine.run_automations(15.minutes)
338
- expect(TestTask.count).to eq(4)
339
-
340
- constantize_time_now Time.utc 2012, 9, 1, 18, 00
341
- Engine.run_automations(15.minutes)
342
- expect(TestTask.count).to eq(5)
343
- expect(TestTask.all.last.kind).to eq('follow up')
344
-
345
- constantize_time_now Time.utc 2012, 9, 1, 18, 30
346
- Engine.run_automations(15.minutes)
347
- expect(TestTask.count).to eq(5)
348
-
349
- constantize_time_now Time.utc 2012, 9, 1, 18, 40
350
- Engine.run_automations(15.minutes)
351
- expect(TestTask.count).to eq(5)
352
- end
353
197
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: triggerable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - DmitryTsepelev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-12 00:00:00.000000000 Z
11
+ date: 2014-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler