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