class Tengine::Core::HandlerPath

Attributes

default_driver_version[RW]

Public Class Methods

find_handlers(event_type_name) click to toggle source
# File lib/tengine/core/handler_path.rb, line 17
def find_handlers(event_type_name)
  paths = self.event_type_name(event_type_name).to_a
  driver_id_to_handler_id = paths.inject({}) do |d, path|
    d[path.driver_id] ||= []
    d[path.driver_id] << path.handler_id
    d
  end
  drivers = Tengine::Core::Driver.any_in(:_id => paths.map(&:driver_id)).and(:enabled => true, :version => default_driver_version)
  drivers.map do |driver|
    driver.handlers.any_in(:_id => driver_id_to_handler_id[driver.id])
  end.flatten
end