Class: ActionDispatch::PublicExceptions

Inherits:
Object
  • Object
show all
Defined in:
lib/action_dispatch/middleware/public_exceptions.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(public_path) ⇒ PublicExceptions

Returns a new instance of PublicExceptions.



5
6
7
# File 'lib/action_dispatch/middleware/public_exceptions.rb', line 5

def initialize(public_path)
  @public_path = public_path
end

Instance Attribute Details

#public_pathObject

Returns the value of attribute public_path.



3
4
5
# File 'lib/action_dispatch/middleware/public_exceptions.rb', line 3

def public_path
  @public_path
end

Instance Method Details

#call(env) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/action_dispatch/middleware/public_exceptions.rb', line 9

def call(env)
  status       = env["PATH_INFO"][1..-1]
  request      = ActionDispatch::Request.new(env)
  body         = { :status => status, :error => Rack::Utils::HTTP_STATUS_CODES.fetch(status.to_i, Rack::Utils::HTTP_STATUS_CODES[500]) }
  content_type = begin
                   request.formats.first
                 rescue ActionController::BadRequest
                   Mime::HTML
                 end

  render(status, content_type, body)
end