Class: Observed::EventBus
- Inherits:
-
Object
- Object
- Observed::EventBus
- Defined in:
- lib/observed/event_bus.rb
Instance Method Summary collapse
- #emit(tag, *params) ⇒ Object
-
#initialize(args = {}) ⇒ EventBus
constructor
A new instance of EventBus.
- #receive(pattern) ⇒ Object
Constructor Details
#initialize(args = {}) ⇒ EventBus
Returns a new instance of EventBus.
6 7 8 9 10 11 |
# File 'lib/observed/event_bus.rb', line 6 def initialize(args={}) @bus = Observed::BasicEventBus.new @receives = {} @task_factory = args[:task_factory] || fail("The parameter :task_factory is missing in args(#{args}") @mutex = ::Mutex.new end |
Instance Method Details
#emit(tag, *params) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/observed/event_bus.rb', line 12 def emit(tag, *params) @task_factory.task { |*params| @bus.emit tag, *params params } end |
#receive(pattern) ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/observed/event_bus.rb', line 18 def receive(pattern) task = @task_factory.mutable_task {|data, | [data, ] } @bus.on_receive(pattern) do |*params| task.now(*params) end task end |