Class: Angelo::Responder::Eventsource
- Inherits:
-
Angelo::Responder
- Object
- Angelo::Responder
- Angelo::Responder::Eventsource
- Defined in:
- lib/angelo/responder/eventsource.rb
Instance Attribute Summary
Attributes inherited from Angelo::Responder
#base, #connection, #mustermann, #request
Instance Method Summary collapse
- #handle_request ⇒ Object
-
#initialize(_headers = nil, &block) ⇒ Eventsource
constructor
A new instance of Eventsource.
- #request=(request) ⇒ Object
- #respond ⇒ Object
Methods inherited from Angelo::Responder
content_type, #content_type, #error_message, #handle_error, #headers, #on_close, #on_close=, #redirect, #redirect!, #reset!, #respond_with?, #transfer_encoding
Constructor Details
#initialize(_headers = nil, &block) ⇒ Eventsource
Returns a new instance of Eventsource.
5 6 7 8 |
# File 'lib/angelo/responder/eventsource.rb', line 5 def initialize _headers = nil, &block headers _headers if _headers super :get, &block end |
Instance Method Details
#handle_request ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/angelo/responder/eventsource.rb', line 15 def handle_request if !@response_handler raise NotImplementedError end @base.filter :before @body = catch(:halt) do @base.eventsource do |socket| @base.instance_exec(socket, &@response_handler) end end if HALT_STRUCT === @body raise RequestError.new 'unknown sse error' unless @body.body == :sse end # TODO any real reason not to run afters with SSE? # @base.filter :after respond rescue IOError => ioe warn "#{ioe.class} - #{ioe.}" rescue RequestError => re headers SSE_HEADER handle_error re, re.type rescue => e handle_error e end |
#request=(request) ⇒ Object
10 11 12 13 |
# File 'lib/angelo/responder/eventsource.rb', line 10 def request= request @params = nil @request = request end |