Class: Otto::ResponseHandlers::HandlerFactory
- Inherits:
-
Object
- Object
- Otto::ResponseHandlers::HandlerFactory
- Defined in:
- lib/otto/response_handlers/factory.rb
Overview
Factory for creating response handlers
Constant Summary collapse
- HANDLER_MAP =
Map of response type names to handler classes
{ 'json' => JSONHandler, 'redirect' => RedirectHandler, 'view' => ViewHandler, 'auto' => AutoHandler, 'default' => DefaultHandler, }.freeze
Class Method Summary collapse
- .create_handler(response_type) ⇒ Object
- .handle_response(result, response, response_type, context = {}) ⇒ Object
Class Method Details
.create_handler(response_type) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/otto/response_handlers/factory.rb', line 24 def self.create_handler(response_type) handler_class = HANDLER_MAP[response_type.to_s.downcase] unless handler_class Otto.logger.warn "Unknown response type: #{response_type}, falling back to default" if Otto.debug handler_class = DefaultHandler end handler_class end |
.handle_response(result, response, response_type, context = {}) ⇒ Object
35 36 37 38 |
# File 'lib/otto/response_handlers/factory.rb', line 35 def self.handle_response(result, response, response_type, context = {}) handler = create_handler(response_type) handler.handle(result, response, context) end |