Skip to content

Instantly share code, notes, and snippets.

@mkasztelnik
Created February 26, 2016 14:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mkasztelnik/7f9958ddd5fac9181a0a to your computer and use it in GitHub Desktop.
Save mkasztelnik/7f9958ddd5fac9181a0a to your computer and use it in GitHub Desktop.
require './lib/exporters/experiment_exporter'
module Api
module V1
class ExperimentExporterController < Api::ApiController
include ActionController::Live
def show
authorize! :read, :experiment_exporter
# experiment_id = params[:id]
# exporter = Exporters::ExperimentExporter.new(experiment_id)
# writer = StreamWriter.new(response, "experiment.csv")
# exporter.export2(writer)
# send_file(file,
# :filename => "experiment.csv",
# :type => "text/csv")
response.headers['Content-Type'] = 'text/event-stream'
10.times {
puts "streamuje"
response.stream.write "This is a test Messagen"
sleep 1
}
response.stream.close
end
class StreamWriter
def initialize(response, filename)
@response = response
@filename = filename
@first_write = true
end
def write(data)
if @first_write
puts ">>>>>>>>>>>>>>>> dodaje headery #{@first_read}"
@response.headers['Content-Type'] = 'Application/octet-stream'
@response.headers['Content-Disposition'] = 'attachment; filename="' + @filename + '"'
@response.headers['X-Accel-Buffering'] = 'no'
@first_write= false
end
puts ">>>>>>>>>> pisze do streama"
@response.stream.write data
end
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment