Sha256: 986bf9da79df21f57bee64cb632cc957b8d78927fea704e629f18d004408363b

Contents?: true

Size: 572 Bytes

Versions: 1

Compression:

Stored size: 572 Bytes

Contents

require 'debug_extras/error_page'

module DebugExtras
  class Middleware
    def initialize(app)
      @app = app
    end

    def call(env)
      env['puma.config'].options.user_options.delete(:app) if env.has_key?('puma.config')
      @app.call env
    rescue StandardError => ex
      if [ex.class, ex.cause.class].map(&:to_s).include? 'DebugExtras::DebugData'
        error_page = ErrorPage.new(ex, Rails.env["PATH_INFO"])
        [200, { "Content-Type" => "text/html; charset=utf-8" }, [error_page.render]]
      else
        @app.call env
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
debug-extras-0.2.0 lib/debug_extras/middleware.rb