class Observed::EventBus

Public Class Methods

new(args={}) click to toggle source
# 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

Public Instance Methods

emit(tag, *params) click to toggle source
# File lib/observed/event_bus.rb, line 12
def emit(tag, *params)
  @task_factory.task { |*params|
    @bus.emit tag, *params
    params
  }
end
receive(pattern) click to toggle source
# File lib/observed/event_bus.rb, line 18
def receive(pattern)
  task = @task_factory.mutable_task {|data, options|
    [data, options]
  }
  @bus.on_receive(pattern) do |*params|
    task.now(*params)
  end
  task
end