reactor 0.8.2 → 0.8.3

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: 95dc37409d0b41598fd79e08c761e3024bffd663
4
- data.tar.gz: dc006fba8540a1a2ee3d18b2a0280c83fac78364
3
+ metadata.gz: 7693ae6991c1cb79fa7257e131e844363db098fc
4
+ data.tar.gz: df0eac5e0c734cace8b3d37fa2be485f896ffc31
5
5
  SHA512:
6
- metadata.gz: c96bc020fefc6c9eb331e32a7b71db10403088ba23228cf73c0b9d66a0861a720351f1773293bf0c80b0296186e20f31af0d141f0707ae8af33556001f91ef96
7
- data.tar.gz: 8e934d6d187cb1f08f8492758f87441a023db7d164a8272f4632e5f164244f7fff6f91819efb2e808b9f254ced744f652f4d2dde849be3d0377c33fe834de5fc
6
+ metadata.gz: 95f7c623e0569143793bc7ee1bd2870e5d71902ea794dd7f6aee6b0c95d67984f70b306ece0e1609f01f19ab0cb58b66f585dd557268a98e1c40d380b1113b36
7
+ data.tar.gz: 4bf1fe49637b5a72cdd5e774c42c2ba2e24b5567b6be195b0c11f5f9a0b36708ddd54f303a1e554250107f1bcd1ff700686888c66a0ac279da7cea6057530e3b
@@ -3,38 +3,29 @@ RSpec::Matchers.define :publish_event do |name, data = {}|
3
3
 
4
4
  match do |block|
5
5
  defaults = {:actor => anything}
6
- expect(Reactor::Event).to receive(:publish).with(name, hash_including(defaults.merge(data)))
7
-
8
- begin
9
- block.call
10
- RSpec::Mocks::verify
11
- true
12
- rescue RSpec::Mocks::MockExpectationError => e
13
- false
14
- end
6
+
7
+ allow(Reactor::Event).to receive(:publish).with(name, a_hash_including(defaults.merge(data)))
8
+
9
+ block.call
10
+
11
+ expect(Reactor::Event).to have_received(:publish).with(name, a_hash_including(defaults.merge(data)))
15
12
  end
16
13
  end
17
14
 
18
- RSpec::Matchers.define :publish_events do |*events|
15
+ RSpec::Matchers.define :publish_events do |*names|
19
16
  supports_block_expectations
20
17
 
21
18
  match do |block|
22
- expect(Reactor::Event).to receive(:publish).exactly(events.count).times do |event, data|
23
- match = events.select { |e| (e.is_a?(Hash) ? e.keys.first : e) == event }.first
24
- expect(match).to be_present
25
-
26
- expected = match.is_a?(Hash) ? match.values.first : {match => {}}
27
- expected.each do |key, value|
28
- expect(value).to eq(expected[key])
29
- end
19
+ defaults = {:actor => anything}
20
+
21
+ names.each do |name|
22
+ allow(Reactor::Event).to receive(:publish).with(name, a_hash_including(defaults))
30
23
  end
31
24
 
32
- begin
33
- block.call
34
- RSpec::Mocks::verify
35
- true
36
- rescue RSpec::Mocks::MockExpectationError => e
37
- false
25
+ block.call
26
+
27
+ names.each do |name|
28
+ expect(Reactor::Event).to have_received(:publish).with(name, a_hash_including(defaults))
38
29
  end
39
30
  end
40
31
  end
@@ -1,3 +1,3 @@
1
1
  module Reactor
2
- VERSION = "0.8.2"
2
+ VERSION = "0.8.3"
3
3
  end
data/reactor.gemspec CHANGED
@@ -23,8 +23,9 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.3"
25
25
  spec.add_development_dependency "rake"
26
- spec.add_development_dependency "rspec", "~> 2.99.0"
26
+ spec.add_development_dependency "rspec", "~> 3.0.0"
27
27
  spec.add_development_dependency "pry"
28
+ spec.add_development_dependency "pry-byebug"
28
29
  spec.add_development_dependency "sqlite3"
29
30
  spec.add_development_dependency "test_after_commit"
30
31
  end
data/spec/event_spec.rb CHANGED
@@ -18,7 +18,7 @@ describe Reactor::Event do
18
18
 
19
19
  describe 'publish' do
20
20
  it 'fires the first perform and sets message event_id' do
21
- Reactor::Event.should_receive(:perform_async).with(event_name, 'actor_id' => '1', 'event' => :user_did_this)
21
+ expect(Reactor::Event).to receive(:perform_async).with(event_name, 'actor_id' => '1', 'event' => :user_did_this)
22
22
  Reactor::Event.publish(:user_did_this, actor_id: '1')
23
23
  end
24
24
  end
@@ -51,7 +51,7 @@ describe Reactor::Event do
51
51
  raise 'UNEXPECTED!'
52
52
  end
53
53
  Reactor::SUBSCRIBERS['barfed'] << Reactor::Subscribable::StaticSubscriberFactory.create('barfed') do |event|
54
- double.some_method
54
+ mock.some_method
55
55
  end
56
56
  end
57
57
 
@@ -28,40 +28,39 @@ class TestSubscriber < Reactor::Subscriber
28
28
  end
29
29
 
30
30
  describe Reactor::Publishable do
31
- before { TestSubscriber.destroy_all }
31
+ before do
32
+ TestSubscriber.destroy_all
33
+ TestSubscriber.class_variable_set(:@@called, false)
34
+ end
35
+
32
36
  describe 'publish' do
33
37
  let(:pet) { Pet.create! }
34
38
  let(:auction) { Auction.create!(pet: pet, start_at: DateTime.new(2012,12,21)) }
35
39
 
36
40
  it 'publishes an event with actor_id and actor_type set as self' do
37
41
  auction
38
- expect(Reactor::Event).to receive(:publish) do |name, data|
39
- expect(name).to eq(:an_event)
40
- expect(data[:what]).to eq('the')
41
- expect(data[:actor]).to eq(auction)
42
- end
42
+ expect(Reactor::Event).to receive(:publish).with(:an_event, what: 'the', actor: auction)
43
43
  auction.publish(:an_event, {what: 'the'})
44
44
  end
45
45
 
46
46
  it 'publishes an event with provided actor and target methods' do
47
- expect(Reactor::Event).to receive(:publish) do |name, data|
48
- expect(name).to eq(:woof)
49
- expect(data[:actor]).to eq(pet)
50
- end
47
+ allow(Reactor::Event).to receive(:publish).exactly(5).times
51
48
  auction
49
+ expect(Reactor::Event).to have_received(:publish).with(:woof, a_hash_including(actor: pet, target: auction))
52
50
  end
53
51
 
54
52
  it 'reschedules an event when the :at time changes' do
55
53
  start_at = auction.start_at
56
54
  new_start_at = start_at + 1.week
57
55
  expect(Reactor::Event).to receive(:reschedule).with :ring, anything
58
- expect(Reactor::Event).to receive(:reschedule).with :begin,
59
- hash_including(
56
+ expect(Reactor::Event).to receive(:reschedule).with(:begin,
57
+ a_hash_including(
60
58
  at: new_start_at,
61
59
  actor: auction,
62
60
  was: start_at,
63
61
  additional_info: 'curtis was here'
64
62
  )
63
+ )
65
64
  auction.start_at = new_start_at
66
65
  auction.save!
67
66
  end
@@ -71,12 +70,13 @@ describe Reactor::Publishable do
71
70
  new_start_at = auction.start_at + 1.week
72
71
  new_ring_time = new_start_at + 30.seconds
73
72
  expect(Reactor::Event).to receive(:reschedule).with :begin, anything
74
- expect(Reactor::Event).to receive(:reschedule).with :ring,
75
- hash_including(
73
+ expect(Reactor::Event).to receive(:reschedule).with(:ring,
74
+ a_hash_including(
76
75
  at: new_ring_time,
77
76
  actor: auction,
78
77
  was: ring_time
79
78
  )
79
+ )
80
80
  auction.start_at = new_start_at
81
81
  auction.save!
82
82
  end
@@ -30,6 +30,7 @@ end
30
30
 
31
31
  describe Reactor::Subscribable do
32
32
  let(:scheduled) { Sidekiq::ScheduledSet.new }
33
+ before { Reactor::TEST_MODE_SUBSCRIBERS.clear }
33
34
 
34
35
  describe 'on_event' do
35
36
  it 'binds block of code statically to event being fired' do
data/spec/spec_helper.rb CHANGED
@@ -27,8 +27,6 @@ end
27
27
  RSpec.configure do |config|
28
28
  # some (optional) config here
29
29
 
30
- config.treat_symbols_as_metadata_keys_with_true_values = true
31
-
32
30
  # Runs Sidekiq jobs inline by default unless the RSpec metadata :sidekiq is specified,
33
31
  # in which case it will use the real Redis-backed Sidekiq queue
34
32
  config.before(:each, :sidekiq) do
@@ -36,9 +34,13 @@ RSpec.configure do |config|
36
34
  Sidekiq::Testing.disable!
37
35
  end
38
36
 
39
-
40
37
  config.after(:each, :sidekiq) do
41
38
  Sidekiq::Testing.inline!
42
39
  end
43
40
 
41
+ # Run specs in random order to surface order dependencies. If you find an
42
+ # order dependency and want to debug it, you can fix the order by providing
43
+ # the seed, which is printed after each run.
44
+ # --seed 1234
45
+ config.order = "random"
44
46
  end
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.8.2
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - winfred
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2014-11-12 00:00:00.000000000 Z
14
+ date: 2014-11-13 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: sidekiq
@@ -75,14 +75,14 @@ dependencies:
75
75
  requirements:
76
76
  - - "~>"
77
77
  - !ruby/object:Gem::Version
78
- version: 2.99.0
78
+ version: 3.0.0
79
79
  type: :development
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
83
  - - "~>"
84
84
  - !ruby/object:Gem::Version
85
- version: 2.99.0
85
+ version: 3.0.0
86
86
  - !ruby/object:Gem::Dependency
87
87
  name: pry
88
88
  requirement: !ruby/object:Gem::Requirement
@@ -97,6 +97,20 @@ dependencies:
97
97
  - - ">="
98
98
  - !ruby/object:Gem::Version
99
99
  version: '0'
100
+ - !ruby/object:Gem::Dependency
101
+ name: pry-byebug
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
100
114
  - !ruby/object:Gem::Dependency
101
115
  name: sqlite3
102
116
  requirement: !ruby/object:Gem::Requirement