class Horizon::Context

Attributes

store[R]

Public Class Methods

current() click to toggle source
# File lib/horizon/context.rb, line 10
def self.current
  store.current_context
end
current=(context) click to toggle source
# File lib/horizon/context.rb, line 14
def self.current=(context)
  store.current_context = context
end
reset!() click to toggle source
# File lib/horizon/context.rb, line 18
def self.reset!
  store.current_context = nil
end
store() click to toggle source
# File lib/horizon/context.rb, line 6
def self.store
  @store ||= ThreadLocalContextStore.new
end

Public Instance Methods

add_handler(handler) click to toggle source
# File lib/horizon/context.rb, line 26
def add_handler(handler)
  handler.events_handled.each do |event|
    event_map[event] << handler
  end
end
event_map() click to toggle source
# File lib/horizon/context.rb, line 22
def event_map
  @event_map ||= Hash.new { |h, k| h[k] = Set.new }
end
publish(event, *args) click to toggle source
# File lib/horizon/context.rb, line 32
def publish(event, *args)
  event_map[event].each do |handler|
    handler.handle event, *args
  end
end