Class: ActionDispatch::ExceptionWrapper

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

Constant Summary collapse

@@rescue_responses =
Hash.new(:internal_server_error)
@@rescue_templates =
Hash.new('diagnostics')

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env, exception) ⇒ ExceptionWrapper

Returns a new instance of ExceptionWrapper.



27
28
29
30
# File 'lib/action_dispatch/middleware/exception_wrapper.rb', line 27

def initialize(env, exception)
  @env = env
  @exception = original_exception(exception)
end

Instance Attribute Details

#envObject (readonly)

Returns the value of attribute env.



25
26
27
# File 'lib/action_dispatch/middleware/exception_wrapper.rb', line 25

def env
  @env
end

#exceptionObject (readonly)

Returns the value of attribute exception.



25
26
27
# File 'lib/action_dispatch/middleware/exception_wrapper.rb', line 25

def exception
  @exception
end

Class Method Details

.status_code_for_exception(class_name) ⇒ Object



52
53
54
# File 'lib/action_dispatch/middleware/exception_wrapper.rb', line 52

def self.status_code_for_exception(class_name)
  Rack::Utils.status_code(@@rescue_responses[class_name])
end

Instance Method Details

#application_traceObject



40
41
42
# File 'lib/action_dispatch/middleware/exception_wrapper.rb', line 40

def application_trace
  clean_backtrace(:silent)
end

#framework_traceObject



44
45
46
# File 'lib/action_dispatch/middleware/exception_wrapper.rb', line 44

def framework_trace
  clean_backtrace(:noise)
end

#full_traceObject



48
49
50
# File 'lib/action_dispatch/middleware/exception_wrapper.rb', line 48

def full_trace
  clean_backtrace(:all)
end

#rescue_templateObject



32
33
34
# File 'lib/action_dispatch/middleware/exception_wrapper.rb', line 32

def rescue_template
  @@rescue_templates[@exception.class.name]
end

#status_codeObject



36
37
38
# File 'lib/action_dispatch/middleware/exception_wrapper.rb', line 36

def status_code
  self.class.status_code_for_exception(@exception.class.name)
end