class Angelo::Responder::Eventsource
Public Class Methods
new(_headers = nil, &block)
click to toggle source
Calls superclass method
Angelo::Responder::new
# File lib/angelo/responder/eventsource.rb, line 5 def initialize _headers = nil, &block headers _headers if _headers super :get, &block end
Public Instance Methods
handle_request()
click to toggle source
# 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.message}" rescue RequestError => re headers SSE_HEADER handle_error re, re.type rescue => e handle_error e end
request=(request)
click to toggle source
# File lib/angelo/responder/eventsource.rb, line 10 def request= request @params = nil @request = request end
respond()
click to toggle source
# File lib/angelo/responder/eventsource.rb, line 42 def respond Angelo.log :sse, @connection, @request, nil, :ok @request.respond 200, headers, nil end