Commit 7bb7952
Changed files (3)
lib
presentation
spec
presentation
lib/presentation/event_aggregator.rb
@@ -5,11 +5,8 @@ class EventAggregator
def publish(event, *args)
subscribers = subscribers_for(event)
- puts "all #{@subscribers}"
- puts "found #{subscribers}"
subscribers.each do |subscriber|
- puts "publishing #{event} to #{subscriber}"
- subscriber.public_send(event, args)
+ subscriber.public_send(event, *args)
end
end
spec/presentation/event_aggregator_spec.rb
@@ -0,0 +1,25 @@
+require "spec_helper"
+
+describe EventAggregator do
+ let(:sut) { EventAggregator.new }
+
+ context "when publishing an event" do
+ let(:hello_subscriber) { double("hello_subscriber", hello: true) }
+ let(:goodbye_subscriber) { double("goodbye_subscriber", hello: false) }
+
+ before :each do
+ sut.subscribe(:hello, hello_subscriber)
+ sut.subscribe(:goodbye, goodbye_subscriber)
+
+ sut.publish(:hello, 'mo', 'kha')
+ end
+
+ it "notifies all subscribers of that event" do
+ hello_subscriber.should have_received(:hello).with('mo', 'kha')
+ end
+
+ it "does not notify subscribers of other events" do
+ goodbye_subscriber.should_not have_received(:hello)
+ end
+ end
+end
spec/spec_helper.rb
@@ -0,0 +1,2 @@
+require "rspec"
+require 'presentation/event_aggregator'