Class: TDL::ProcessingRules
- Inherits:
-
Object
- Object
- TDL::ProcessingRules
- Defined in:
- lib/tdl/processing_rules.rb
Defined Under Namespace
Classes: ProcessingRuleBuilder
Instance Method Summary collapse
-
#add(method_name, user_implementation, client_action) ⇒ 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.
9 10 11 12 |
# File 'lib/tdl/processing_rules.rb', line 9 def initialize @rules = Hash.new @logger = Logging.logger[self] end |
Instance Method Details
#add(method_name, user_implementation, client_action) ⇒ Object
~~~~ Builders
16 17 18 |
# File 'lib/tdl/processing_rules.rb', line 16 def add(method_name, user_implementation, client_action) @rules[method_name] = ProcessingRule.new(user_implementation, client_action) end |
#get_response_for(request) ⇒ Object
~~~~ Accessors
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/tdl/processing_rules.rb', line 44 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, processing_rule.client_action) 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
20 21 22 |
# File 'lib/tdl/processing_rules.rb', line 20 def on(method_name) ProcessingRuleBuilder.new(self, method_name) end |