Class: RailsWayback::BarMiddleware
- Inherits:
-
Object
- Object
- RailsWayback::BarMiddleware
- Defined in:
- lib/rails_wayback/bar_middleware.rb
Overview
Rack middleware that appends the wayback bar to every successful or client-error HTML response of the host application while the gem is enabled. Only complete, bounded Rack-buffered documents are transformed; streaming and otherwise unsafe responses pass through.
Constant Summary collapse
- UNSAFE_STATUSES =
[204, 205, 206].freeze
- UNSAFE_RESPONSE_HEADERS =
%w[ transfer-encoding content-range rack.hijack x-sendfile x-accel-redirect ].freeze
- INVALIDATED_RESPONSE_HEADERS =
%w[ etag content-md5 digest content-digest repr-digest content-range accept-ranges ].freeze
- SKIP_PATH_PREFIXES =
%w[ /assets /packs /rails/ /cable /rails-wayback ].freeze
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ BarMiddleware
constructor
A new instance of BarMiddleware.
Constructor Details
#initialize(app) ⇒ BarMiddleware
Returns a new instance of BarMiddleware.
40 41 42 |
# File 'lib/rails_wayback/bar_middleware.rb', line 40 def initialize(app) @app = app end |
Instance Method Details
#call(env) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/rails_wayback/bar_middleware.rb', line 44 def call(env) tracker = RailsWayback::RenderTracker.new RailsWayback::RenderContext.with(tracker) { call_with_tracker(env, tracker) } ensure tracker&.close end |