lib/phlex/rails/streaming.rb in phlex-rails-1.2.2 vs lib/phlex/rails/streaming.rb in phlex-rails-2.0.0.beta1
- old
+ new
@@ -5,54 +5,56 @@
include ActionController::Live
private
def stream(view, last_modified: Time.now.httpdate, filename: nil)
- set_stream_headers(last_modified: last_modified)
+ __phlex_set_stream_headers__(last_modified:)
case view
when Phlex::HTML
- stream_html(view)
+ __phlex_stream_html__(view)
when Phlex::CSV
- stream_csv(view, filename: filename)
+ __phlex_stream_csv__(view, filename:)
+ else
+ raise Phlex::ArgumentError
end
end
- def set_stream_headers(last_modified:)
+ def __phlex_set_stream_headers__(last_modified:)
headers.delete("Content-Length")
headers["X-Accel-Buffering"] = "no"
headers["Cache-Control"] = "no-transform"
headers["Last-Modified"] = last_modified
end
- def stream_csv(view, filename:)
+ def __phlex_stream_csv__(view, filename:)
headers["Content-Type"] = "text/csv; charset=utf-8"
headers["Content-Disposition"] = "attachment; filename=\"#{filename || view.filename}\""
self.response_body = Enumerator.new do |buffer|
- view.call(buffer, view_context: view_context)
+ view.call(buffer, view_context:)
end
end
- def stream_html(view)
+ def __phlex_stream_html__(view)
headers["Content-Type"] = "text/html; charset=utf-8"
# Ensure we have a session id.
# See https://github.com/rails/rails/issues/51424
if session.id.nil?
session[:phlex_init_session] = 1
session.delete(:phlex_init_session)
end
self.response_body = Enumerator.new do |buffer|
- view.call(buffer, view_context: view_context)
+ view.call(buffer, view_context:)
rescue => e
raise(e) if Rails.env.test?
debug_middleware = ActionDispatch::DebugExceptions.new(
proc { |_env| raise(e) },
- response_format: :html
+ response_format: :html,
)
_debug_status, _debug_headers, debug_body = debug_middleware.call(request.env)
if Rails.env.development?