Sha256: 7896f5f0940c1a262a73080cf82029f274b13a78b3f6b4e671fd68d90973b76e

Contents?: true

Size: 667 Bytes

Versions: 34

Compression:

Stored size: 667 Bytes

Contents

module Rack::Insight
  class RedirectInterceptor
    include Render

    def initialize(app)
      @app = app
    end

    def call(env)
      status, headers, body = @app.call(env)
      @response = Rack::Response.new(body, status, headers)
      if @response.redirect? && env["rack-insight.intercept_redirects"]
        intercept_redirect
      end
      @response.to_a
    end

    def intercept_redirect
      new_body = render_template("redirect", :redirect_to => @response.location)
      new_headers = { "Content-Type" => "text/html", "Content-Length" => new_body.size.to_s }
      @response = Rack::Response.new(new_body, 200, new_headers)
    end

  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
rack-insight-0.6.4 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.6.3 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.6.2 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.30 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.29 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.28 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.27 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.26 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.25 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.24 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.23 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.22 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.21 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.20 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.19 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.18 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.17 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.16 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.15 lib/rack/insight/redirect_interceptor.rb
rack-insight-0.5.14 lib/rack/insight/redirect_interceptor.rb