Module: SuperExceptionNotifier::HelpfulHashes

Included in:
NotifiableHelper
Defined in:
lib/super_exception_notifier/helpful_hashes.rb

Constant Summary collapse

SILENT_EXCEPTIONS =
noiseless
HTTP_STATUS_CODES =

TODO: use ActionController::StatusCodes

{
  "400" => "Bad Request",
  "403" => "Forbidden",
  "404" => "Not Found",
  "405" => "Method Not Allowed",
  "410" => "Gone",
  "418" => "I'm a teapot",
  "422" => "Unprocessable Entity",
  "423" => "Locked",
  "500" => "Internal Server Error",
  "501" => "Not Implemented",
  "503" => "Service Unavailable"
}

Instance Method Summary collapse

Instance Method Details

#codes_for_error_classesObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/super_exception_notifier/helpful_hashes.rb', line 33

def codes_for_error_classes
  #TODO: Format whitespace
  classes = {
    # These are standard errors in rails / ruby
    NameError => "503",
    TypeError => "503",
    RuntimeError => "500",
    ArgumentError => "500",
    # These are custom error names defined in lib/super_exception_notifier/custom_exception_classes
    AccessDenied => "403",
    PageNotFound => "404",
    InvalidMethod => "405",
    ResourceGone => "410",
    CorruptData => "422",
    NoMethodError => "500",
    NotImplemented => "501",
    MethodDisabled => "200"
  }
  # Highly dependent on the verison of rails, so we're very protective about these'
  classes.merge!({ ActionView::TemplateError => "500"})             if defined?(ActionView)       && ActionView.const_defined?(:TemplateError)
  classes.merge!({ ActiveRecord::RecordNotFound => "400" })         if defined?(ActiveRecord)     && ActiveRecord.const_defined?(:RecordNotFound)
  classes.merge!({ ActiveResource::ResourceNotFound => "404" })     if defined?(ActiveResource)   && ActiveResource.const_defined?(:ResourceNotFound)

  if defined?(ActionController)
    classes.merge!({ ActionController::UnknownController => "404" })          if ActionController.const_defined?(:UnknownController)
    classes.merge!({ ActionController::MissingTemplate => "404" })            if ActionController.const_defined?(:MissingTemplate)
    classes.merge!({ ActionController::MethodNotAllowed => "405" })           if ActionController.const_defined?(:MethodNotAllowed)
    classes.merge!({ ActionController::UnknownAction => "501" })              if ActionController.const_defined?(:UnknownAction)
    classes.merge!({ ActionController::RoutingError => "404" })               if ActionController.const_defined?(:RoutingError)
    classes.merge!({ ActionController::InvalidAuthenticityToken => "405" })   if ActionController.const_defined?(:InvalidAuthenticityToken)
  end
end