Class: HumanError

Inherits:
Object
  • Object
show all
Defined in:
lib/human_error.rb,
lib/human_error/error.rb,
lib/human_error/version.rb,
lib/human_error/configuration.rb,
lib/human_error/resource_naming.rb,
lib/human_error/utilities/string.rb,
lib/human_error/errors/crud_error.rb,
lib/human_error/rescuable_resource.rb,
lib/human_error/verifiable_resource.rb,
lib/human_error/errors/authorization_error.rb,
lib/human_error/errors/authentication_error.rb,
lib/human_error/errors/crud_errors/association_error.rb,
lib/human_error/errors/authorization_errors/forbidden_error.rb,
lib/human_error/errors/crud_errors/resource_not_found_error.rb,
lib/human_error/errors/crud_errors/resource_persistence_error.rb,
lib/human_error/errors/request_errors/parameter_missing_error.rb,
lib/human_error/errors/authentication_errors/invalid_token_error.rb,
lib/human_error/errors/request_errors/unpermitted_parameters_error.rb,
lib/human_error/errors/authentication_errors/duplicate_authentication_error.rb,
lib/human_error/errors/authentication_errors/invalid_username_or_password_error.rb

Defined Under Namespace

Modules: Error, Errors, RescuableResource, ResourceNaming, Utilities Classes: Configuration

Constant Summary collapse

VERSION =
'3.2.0'.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.build(error_type, overrides = {}) ⇒ Object



24
25
26
# File 'lib/human_error.rb', line 24

def self.build(error_type, overrides = {})
  fetch(error_type).new(overrides)
end

.configurationObject



40
41
42
# File 'lib/human_error/configuration.rb', line 40

def self.configuration
  Configuration.instance
end

.configure {|configuration| ... } ⇒ Object

Yields:



36
37
38
# File 'lib/human_error/configuration.rb', line 36

def self.configure
  yield configuration
end

.convert(original_error, overrides = {}) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/human_error.rb', line 28

def self.convert(original_error, overrides = {})
  case original_error.class.name
  when 'ActiveRecord::InvalidForeignKey'
    fetch('AssociationError').convert(original_error, overrides)
  when 'ActiveRecord::RecordNotFound'
    fetch('ResourceNotFoundError').convert(original_error, overrides)
  when 'ActiveRecord::RecordInvalid',
       'ActiveRecord::RecordNotSaved'
    fetch('ResourcePersistenceError').convert(original_error, overrides)
  when 'ActionController::ParameterMissing',
    fetch('ParameterMissingError').convert(original_error, overrides)
  when 'ActionController::UnpermittedParameters'
    fetch('UnpermittedParametersError').convert(original_error, overrides)
  end
end

.fetch(error_type) ⇒ Object



20
21
22
# File 'lib/human_error.rb', line 20

def self.fetch(error_type)
  Object.const_get("HumanError::Errors::#{error_type}")
end

.raise(error_type, **args) ⇒ Object



44
45
46
# File 'lib/human_error.rb', line 44

def self.raise(error_type, **args)
  Kernel.fail build(error_type, **args)
end

Instance Method Details

#configurationObject



32
33
34
# File 'lib/human_error/configuration.rb', line 32

def configuration
  Configuration.instance
end