Class: TDL::ProcessingRules
- Inherits:
-
Object
- Object
- TDL::ProcessingRules
- Defined in:
- lib/tdl/queue/processing_rules.rb
Defined Under Namespace
Classes: ProcessingRuleBuilder
Instance Method Summary collapse
-
#add(method_name, user_implementation) ⇒ Object
~~~~ Builders.
-
#get_response_for(request) ⇒ Object
~~~~ Accessors.
-
#initialize ⇒ ProcessingRules
constructor
A new instance of ProcessingRules.
- #on(method_name) ⇒ Object
Constructor Details
#initialize ⇒ ProcessingRules
Returns a new instance of ProcessingRules.
8 9 10 11 |
# File 'lib/tdl/queue/processing_rules.rb', line 8 def initialize @rules = Hash.new @logger = Logging.logger[self] end |
Instance Method Details
#add(method_name, user_implementation) ⇒ Object
~~~~ Builders
15 16 17 |
# 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) ⇒ Object
~~~~ Accessors
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# 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 = "\"method '#{request.method}' did not match any processing rule\"" @logger.warn() return FatalErrorResponse.new() end begin user_implementation = processing_rule.user_implementation result = user_implementation.call(*request.params) return ValidResponse.new(request.id, result) rescue Exception => e = '"user implementation raised exception"' @logger.warn("#{}, #{e.}") @logger.warn e.backtrace.join("\n") return FatalErrorResponse.new() end end |
#on(method_name) ⇒ Object
19 20 21 |
# File 'lib/tdl/queue/processing_rules.rb', line 19 def on(method_name) ProcessingRuleBuilder.new(self, method_name) end |