seam-sidekiq 1.0.2 → 1.1.0

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.
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