class Qs::Route

Attributes

handler_class[R]
handler_class_name[R]
id[R]

Public Class Methods

new(route_id, handler_class_name) click to toggle source
# File lib/qs/route.rb, line 9
def initialize(route_id, handler_class_name)
  @id = route_id.to_s
  @handler_class_name = handler_class_name
  @handler_class = nil
end

Public Instance Methods

run(message, daemon_data) click to toggle source
# File lib/qs/route.rb, line 19
def run(message, daemon_data)
  QsRunner.new(self.handler_class, {
    :message => message,
    :params  => message.params,
    :logger  => daemon_data.logger
  }).run
end
validate!() click to toggle source
# File lib/qs/route.rb, line 15
def validate!
  @handler_class = constantize_handler_class(@handler_class_name)
end

Private Instance Methods

constantize(class_name) click to toggle source
# File lib/qs/route.rb, line 35
def constantize(class_name)
  names = class_name.to_s.split('::').reject{ |name| name.empty? }
  klass = names.inject(Object){ |constant, name| constant.const_get(name) }
  klass == Object ? false : klass
rescue NameError
  false
end
constantize_handler_class(handler_class_name) click to toggle source
# File lib/qs/route.rb, line 29
def constantize_handler_class(handler_class_name)
  constantize(handler_class_name).tap do |handler_class|
    raise(NoHandlerClassError.new(handler_class_name)) if !handler_class
  end
end