reactor 0.9.2 → 0.9.4
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 +4 -4
- data/lib/reactor/event.rb +18 -3
- data/lib/reactor/version.rb +1 -1
- data/reactor.gemspec +2 -2
- data/spec/event_spec.rb +22 -2
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 703450e6a7d56fa44bbfcfa8a9eed1263df5cc0b
|
4
|
+
data.tar.gz: f2e523fbc25b98abeb47b5f67d16b4cbf6b388e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9d620ea6f462727a488d71c236420a18f36bca937916d58836604de3098d4a2e638527aa9c9e502ee0040cd55d79b179ccc1291b0f969c149d0369a7f38391f
|
7
|
+
data.tar.gz: 442cf06b6d18b3ef38347836d072b1cf3bfe1907f1d28e44048f1e451b74aec0006224741c27a5b1f07d977a0ae3ed25beb5670037d76f890c9e0d4ddef623cd
|
data/lib/reactor/event.rb
CHANGED
@@ -66,9 +66,24 @@ class Reactor::Event
|
|
66
66
|
def reschedule(name, data = {})
|
67
67
|
scheduled_jobs = Sidekiq::ScheduledSet.new
|
68
68
|
job = scheduled_jobs.detect do |job|
|
69
|
-
job['class'] == self.name.to_s
|
70
|
-
job['args'].first == name.to_s
|
71
|
-
job.score.to_i == data[:was].to_i
|
69
|
+
same_class = job['class'] == self.name.to_s
|
70
|
+
same_name = job['args'].first == name.to_s
|
71
|
+
same_at = job.score.to_i == data[:was].to_i
|
72
|
+
|
73
|
+
if data[:actor]
|
74
|
+
job_data = job['args'].second
|
75
|
+
|
76
|
+
if job_data
|
77
|
+
same_actor = job_data['actor_type'] == data[:actor].class.name &&
|
78
|
+
job_data['actor_id'] == data[:actor].id
|
79
|
+
else
|
80
|
+
same_actor = false
|
81
|
+
end
|
82
|
+
|
83
|
+
same_class && same_name && same_at && same_actor
|
84
|
+
else
|
85
|
+
same_class && same_name && same_at
|
86
|
+
end
|
72
87
|
end
|
73
88
|
|
74
89
|
job.delete if job
|
data/lib/reactor/version.rb
CHANGED
data/reactor.gemspec
CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "sidekiq", "
|
22
|
-
spec.add_dependency 'activerecord', '
|
21
|
+
spec.add_dependency "sidekiq", "< 4.0"
|
22
|
+
spec.add_dependency 'activerecord', '< 4.2'
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
25
25
|
spec.add_development_dependency "rake"
|
data/spec/event_spec.rb
CHANGED
@@ -84,16 +84,36 @@ describe Reactor::Event do
|
|
84
84
|
|
85
85
|
it 'will schedule an event in the future even if that event was not previously scheduled in the past' do
|
86
86
|
expect {
|
87
|
-
jid = Reactor::Event.reschedule :
|
87
|
+
jid = Reactor::Event.reschedule :no_old_turtle_time, at: (time + 2.hours), was: time
|
88
88
|
expect(scheduled.find_job(jid).score).to eq((time + 2.hours).to_f)
|
89
89
|
}.to change{ scheduled.size }.by(1)
|
90
90
|
end
|
91
91
|
|
92
92
|
it 'will not schedule an event when the time passed in is nil' do
|
93
93
|
expect {
|
94
|
-
Reactor::Event.reschedule :
|
94
|
+
Reactor::Event.reschedule :no_old_turtle_time, at: nil, was: time
|
95
95
|
}.to_not change{ scheduled.size }
|
96
96
|
end
|
97
|
+
|
98
|
+
context 'when an actor is passed' do
|
99
|
+
let(:actor) { ArbitraryModel.create! }
|
100
|
+
|
101
|
+
it 'will not delete a job which is not associated with the actor' do
|
102
|
+
Reactor::Event.publish :turtle_time, at: time
|
103
|
+
|
104
|
+
expect {
|
105
|
+
Reactor::Event.reschedule :turtle_time, at: time + 2.hours, was: time, actor: actor
|
106
|
+
}.to change { scheduled.size}.from(1).to(2)
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'will delete a job associated with the actor' do
|
110
|
+
Reactor::Event.publish :turtle_time, at: time, actor: actor
|
111
|
+
|
112
|
+
expect {
|
113
|
+
Reactor::Event.reschedule :turtle_time, at: time + 2.hours, was: time, actor: actor
|
114
|
+
}.not_to change { scheduled.size}.from(1)
|
115
|
+
end
|
116
|
+
end
|
97
117
|
end
|
98
118
|
|
99
119
|
describe 'event content' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reactor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- winfred
|
@@ -11,36 +11,36 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2015-01-06 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: sidekiq
|
18
18
|
requirement: !ruby/object:Gem::Requirement
|
19
19
|
requirements:
|
20
|
-
- - "
|
20
|
+
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '4.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - "
|
27
|
+
- - "<"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
29
|
+
version: '4.0'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: activerecord
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
requirements:
|
34
|
-
- - "
|
34
|
+
- - "<"
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: '
|
36
|
+
version: '4.2'
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
|
-
- - "
|
41
|
+
- - "<"
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '
|
43
|
+
version: '4.2'
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
45
|
name: bundler
|
46
46
|
requirement: !ruby/object:Gem::Requirement
|
@@ -216,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
216
|
version: '0'
|
217
217
|
requirements: []
|
218
218
|
rubyforge_project:
|
219
|
-
rubygems_version: 2.
|
219
|
+
rubygems_version: 2.2.2
|
220
220
|
signing_key:
|
221
221
|
specification_version: 4
|
222
222
|
summary: Sidekiq/ActiveRecord pubsub lib
|