Class: PinchHitter::Service::EndpointHandlers
- Inherits:
-
Object
- Object
- PinchHitter::Service::EndpointHandlers
- Defined in:
- lib/pinch_hitter/service/endpoint_handlers.rb
Instance Method Summary collapse
- #handler_for(endpoint = '/') ⇒ Object
- #handlers ⇒ Object
- #register_module(endpoint, mod) ⇒ Object
- #reset ⇒ Object
- #respond_to(endpoint = '/', body = nil, request = nil, response = nil) ⇒ Object
- #store_handler(endpoint, handler = MessageQueue.new) ⇒ Object
- #store_message(endpoint, message) ⇒ Object
Instance Method Details
#handler_for(endpoint = '/') ⇒ Object
25 26 27 |
# File 'lib/pinch_hitter/service/endpoint_handlers.rb', line 25 def handler_for(endpoint='/') handlers[endpoint] || store_handler(endpoint) end |
#handlers ⇒ Object
7 8 9 |
# File 'lib/pinch_hitter/service/endpoint_handlers.rb', line 7 def handlers @handlers ||= {} end |
#register_module(endpoint, mod) ⇒ Object
29 30 31 32 33 |
# File 'lib/pinch_hitter/service/endpoint_handlers.rb', line 29 def register_module(endpoint, mod) handler = Object.new handler.extend(mod) store_handler(endpoint, handler) end |
#reset ⇒ Object
39 40 41 42 43 |
# File 'lib/pinch_hitter/service/endpoint_handlers.rb', line 39 def reset handlers.values.each do |handler| handler.reset if handler.respond_to? :reset end end |
#respond_to(endpoint = '/', body = nil, request = nil, response = nil) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/pinch_hitter/service/endpoint_handlers.rb', line 16 def respond_to(endpoint='/', body=nil, request=nil, response = nil) handler = handler_for(endpoint) if handler.respond_to?(:handle_request) handler.handle_request(request, response) else handler.respond_to(body).squish end end |
#store_handler(endpoint, handler = MessageQueue.new) ⇒ Object
35 36 37 |
# File 'lib/pinch_hitter/service/endpoint_handlers.rb', line 35 def store_handler(endpoint, handler=MessageQueue.new) handlers[endpoint] = handler end |
#store_message(endpoint, message) ⇒ Object
11 12 13 14 |
# File 'lib/pinch_hitter/service/endpoint_handlers.rb', line 11 def (endpoint, ) handler = handler_for(endpoint) handler.store(.squish) if handler.respond_to? :store end |