class EventSourceController

Public Instance Methods

projected() click to toggle source
# File lib/generators/disco/app/templates/app/controllers/event_source_controller.rb, line 4
def projected
  response.headers['Content-Type'] = 'text/event-stream'
  sse = ActiveEvent::SSE.new(response.stream)
  ActiveEvent::EventSourceServer.wait_for_event_projection event_id, projection, timeout: 10
  sse.event('projected')
rescue IOError
  # ignore disconnect
rescue ActiveEvent::ProjectionException => e
  sse.event('exception', {error: e.message, backtrace: e.backtrace})
ensure
  sse.close
end

Private Instance Methods

event_id() click to toggle source
# File lib/generators/disco/app/templates/app/controllers/event_source_controller.rb, line 19
def event_id
  params[:event].to_i
end
projection() click to toggle source
# File lib/generators/disco/app/templates/app/controllers/event_source_controller.rb, line 23
def projection
  params[:projection]
end