jmoses_event_bus 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- event_bus (1.0.0)
4
+ jmoses_event_bus (1.0.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -33,7 +33,7 @@ PLATFORMS
33
33
  ruby
34
34
 
35
35
  DEPENDENCIES
36
- event_bus!
36
+ jmoses_event_bus!
37
37
  json
38
38
  rake (~> 10.0.1)
39
39
  rspec (~> 2.12)
@@ -0,0 +1,21 @@
1
+ class EventBus
2
+ def self.with_temporary_subscriber(pattern, listener, method_name, &block)
3
+ subscribe(pattern, listener, method_name)
4
+ temporary_subscriber = registrations.last_subscriber
5
+
6
+ yield
7
+ ensure
8
+ registrations.remove_subscriber(temporary_subscriber)
9
+ end
10
+
11
+ private
12
+ class Registrations
13
+ def remove_subscriber(subscriber)
14
+ listeners.delete subscriber
15
+ end
16
+
17
+ def last_subscriber
18
+ listeners.last
19
+ end
20
+ end
21
+ end
@@ -7,6 +7,16 @@ describe EventBus do
7
7
  EventBus.clear
8
8
  end
9
9
 
10
+ describe "testing" do
11
+ it "adds then removes the handler" do
12
+ EventBus.with_temporary_subscriber(/test/, listener, :handler) do
13
+ EventBus.publish 'test'
14
+ end
15
+ listener.should have_received(:handler).with(event_name: 'test')
16
+ EventBus.send(:registrations).send(:listeners).should be_empty
17
+ end
18
+ end
19
+
10
20
  describe 'publishing' do
11
21
 
12
22
  context 'accepts a string for the event name' do
data/spec/spec_helper.rb CHANGED
@@ -7,5 +7,6 @@ require 'rspec-given'
7
7
  SimpleCov.start
8
8
 
9
9
  require 'event_bus'
10
+ require 'event_bus/testing'
10
11
 
11
12
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jmoses_event_bus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -77,6 +77,7 @@ files:
77
77
  - Rakefile
78
78
  - lib/event_bus.rb
79
79
  - lib/event_bus/registrations.rb
80
+ - lib/event_bus/testing.rb
80
81
  - spec/lib/event_bus_spec.rb
81
82
  - spec/spec_helper.rb
82
83
  homepage: http://github.com/jmoses/event_bus