module PubSub::Domain

Public Instance Methods

handler_name(event_name) click to toggle source
# File lib/pub_sub/domain.rb, line 13
def handler_name(event_name)
  return nil unless event_name.to_s.start_with?(/[a-z_]+__/)
  "#{event_name.to_s.camelize}Handler"
end
method_missing(event_or_method_name, *event_data) click to toggle source
Calls superclass method
# File lib/pub_sub/domain.rb, line 3
def method_missing(event_or_method_name, *event_data)
  if handler_name(event_or_method_name)
    event_payload = event_data.extract_options!
    EventTrace.load_from(event_payload.delete(:event_uid))
    const_get(handler_name(event_or_method_name)).new(event_payload).call!
  else
    super
  end
end
respond_to_missing?(event_or_method_name, include_private = false) click to toggle source
Calls superclass method
# File lib/pub_sub/domain.rb, line 18
def respond_to_missing?(event_or_method_name, include_private = false)
  return super unless handler_name(event_or_method_name)
  const_get(handler_name(event_or_method_name))
rescue NameError
  super
end