seam-sidekiq 1.0.2 → 1.1.0

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: 71af6b88f63849c495d2706982fcc60b0b5a5475
4
- data.tar.gz: 2d9acddc6ec475787bdd2d24b0e1aad7f801f4b8
3
+ metadata.gz: 9a61a9f0a91398bef9f2100f1f46e7792bb2a3eb
4
+ data.tar.gz: fd74ccb2b2a998928f8ed98f00df43908cf94707
5
5
  SHA512:
6
- metadata.gz: 0afdcc79715e9ae7a04d012e600e9da9224e3419850baf0c3be2e58c028b98222433d6fe58678ec8e258b49818717f8a84c5c25f323f216ce269108a281944dd
7
- data.tar.gz: c732c97eb385348704313b53de36c5d6c447674fb1825e73cc22ac80d96a2490c9292830654428ae87e7bb1e58a9d43f97ad0727f4757625b3cb5ba0fe3965e6
6
+ metadata.gz: d47cab22355cfffb8979a5bac1fcf7ac7db3fedca4a050c9846bfcd492e3b6253351031a55b470a88452afd631d71cb72258e6706d5c39833bc6993202176c90
7
+ data.tar.gz: a1161e82722ade69bc1880704d86e3dc885a922b0ccfbbd0e9ca24b504fc8a82261676e61e39961ee4fb2202c7b7f99d4bfde4650f9f6edc771323c699556621
data/lib/seam/sidekiq.rb CHANGED
@@ -1,7 +1,9 @@
1
1
  require 'seam'
2
2
 
3
3
  module Seam
4
+
4
5
  module Sidekiq
6
+
5
7
  def self.setup
6
8
  ::Seam::Worker.class_eval do
7
9
  include ::Sidekiq::Worker
@@ -9,16 +11,53 @@ module Seam
9
11
  def perform effort_id
10
12
  effort = Seam::Effort.find effort_id
11
13
  execute effort
12
- next_worker = Seam::Worker.handler_for effort.next_step
13
- if next_worker
14
- if effort.next_execute_at <= Time.now
15
- next_worker.class.perform_async effort.id
16
- else
17
- next_worker.class.perform_in effort.next_execute_at - Time.now, effort.id
18
- end
19
- end
14
+ ::Seam::Sidekiq.fire_the_worker_for_the_next_step_of effort
15
+ end
16
+ end
17
+
18
+ ::Seam::Flow.class_eval do
19
+ alias :the_default_start_for :start
20
+ def start(data = {})
21
+ effort = the_default_start_for data
22
+ ::Seam::Sidekiq.fire_the_worker_for_the_next_step_of effort
23
+ effort
20
24
  end
21
25
  end
22
26
  end
27
+
28
+ def self.fire_the_worker_for_the_next_step_of effort
29
+ return unless worker = the_next_worker_for(effort)
30
+ this_should_be_executed_in_the_future(effort) ?
31
+ execute_this_in_the_future(worker, effort) :
32
+ execute_this_now(worker, effort)
33
+ end
34
+
35
+ class << self
36
+
37
+ private
38
+
39
+ def execute_this_in_the_future worker, effort
40
+ worker.class.perform_in time_until(effort), effort.id
41
+ end
42
+
43
+ def execute_this_now worker, effort
44
+ worker.class.perform_async effort.id
45
+ end
46
+
47
+ def the_next_worker_for effort
48
+ Seam::Worker.handler_for effort.next_step
49
+ end
50
+
51
+ def time_until effort
52
+ effort.next_execute_at - Time.now
53
+ end
54
+
55
+ def this_should_be_executed_in_the_future effort
56
+ effort.next_execute_at > Time.now
57
+ end
58
+
59
+ end
60
+
23
61
  end
62
+
24
63
  end
@@ -1,5 +1,5 @@
1
1
  module Seam
2
2
  module Sidekiq
3
- VERSION = "1.0.2"
3
+ VERSION = "1.1.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seam-sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darren Cauthon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-04 00:00:00.000000000 Z
11
+ date: 2014-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: seam