class TDL::ProcessingRules
Public Class Methods
new()
click to toggle source
# File lib/tdl/queue/processing_rules.rb, line 8 def initialize @rules = Hash.new @logger = Logging.logger[self] end
Public Instance Methods
add(method_name, user_implementation)
click to toggle source
~~~~ Builders
# File lib/tdl/queue/processing_rules.rb, line 15 def add(method_name, user_implementation) @rules[method_name] = ProcessingRule.new(user_implementation) end
get_response_for(request)
click to toggle source
~~~~ Accessors
# File lib/tdl/queue/processing_rules.rb, line 43 def get_response_for(request) if @rules.has_key?(request.method) processing_rule = @rules[request.method] else message = "\"method '#{request.method}' did not match any processing rule\"" @logger.warn(message) return FatalErrorResponse.new(message) end begin user_implementation = processing_rule.user_implementation result = user_implementation.call(*request.params) return ValidResponse.new(request.id, result) rescue Exception => e message = '"user implementation raised exception"' @logger.warn("#{message}, #{e.message}") @logger.warn e.backtrace.join("\n") return FatalErrorResponse.new(message) end end
on(method_name)
click to toggle source
# File lib/tdl/queue/processing_rules.rb, line 19 def on(method_name) ProcessingRuleBuilder.new(self, method_name) end