human_error 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/human_error.rb +21 -19
- data/lib/human_error/configuration.rb +27 -7
- data/lib/human_error/error.rb +60 -28
- data/lib/human_error/errors/authentication_errors/duplicate_authentication_error.rb +8 -8
- data/lib/human_error/errors/authentication_errors/invalid_token_error.rb +8 -8
- data/lib/human_error/errors/authentication_errors/invalid_username_or_password_error.rb +8 -8
- data/lib/human_error/errors/crud_errors/association_error.rb +8 -9
- data/lib/human_error/errors/crud_errors/resource_not_found_error.rb +8 -8
- data/lib/human_error/errors/crud_errors/resource_persistence_error.rb +8 -8
- data/lib/human_error/errors/request_errors/parameter_missing_error.rb +40 -0
- data/lib/human_error/errors/request_errors/unpermitted_parameters_error.rb +46 -0
- data/lib/human_error/rescuable_resource.rb +30 -47
- data/lib/human_error/verifiable_resource.rb +36 -0
- data/lib/human_error/version.rb +1 -1
- data/spec/lib/human_error/configuration_spec.rb +13 -26
- data/spec/lib/human_error/error_spec.rb +135 -1
- data/spec/lib/human_error/errors/authentication_errors/duplicate_authentication_error_spec.rb +8 -13
- data/spec/lib/human_error/errors/authentication_errors/invalid_token_error_spec.rb +8 -12
- data/spec/lib/human_error/errors/authentication_errors/invalid_username_or_password_error_spec.rb +8 -13
- data/spec/lib/human_error/errors/crud_errors/association_error_spec.rb +8 -16
- data/spec/lib/human_error/errors/crud_errors/resource_not_found_error_spec.rb +9 -17
- data/spec/lib/human_error/errors/crud_errors/resource_persistence_error_spec.rb +9 -17
- data/spec/lib/human_error/errors/request_errors/parameter_missing_error_spec.rb +55 -0
- data/spec/lib/human_error/errors/request_errors/unpermitted_parameters_error_spec.rb +62 -0
- data/spec/lib/human_error_spec.rb +4 -57
- metadata +26 -12
- data/lib/human_error/error_code_directory.rb +0 -20
- data/lib/human_error/errors.rb +0 -9
- data/lib/human_error/errors/request_error.rb +0 -48
- data/lib/human_error/knowledgebase_id_directory.rb +0 -20
- data/lib/human_error/verifiable_model.rb +0 -30
- data/spec/lib/human_error/errors/request_error_spec.rb +0 -95
@@ -10,26 +10,22 @@ describe InvalidTokenError do
|
|
10
10
|
expect(error.http_status).to eql 401
|
11
11
|
end
|
12
12
|
|
13
|
-
it 'has a code
|
14
|
-
expect(error.code).to eql
|
13
|
+
it 'has a code' do
|
14
|
+
expect(error.code).to eql 'errors.invalid_token_error'
|
15
15
|
end
|
16
16
|
|
17
|
-
it 'has a
|
18
|
-
expect(error.
|
17
|
+
it 'has a title' do
|
18
|
+
expect(error.title).to eql 'Invalid Token'
|
19
19
|
end
|
20
20
|
|
21
|
-
it 'can output the
|
22
|
-
expect(error.
|
21
|
+
it 'can output the detail' do
|
22
|
+
expect(error.detail).to eql 'The token you attempted to use for this ' \
|
23
23
|
'request is invalid for this resource. ' \
|
24
24
|
'Please double-check and try again.'
|
25
25
|
end
|
26
26
|
|
27
|
-
it 'can output the
|
28
|
-
expect(error.
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'can output the friendly message' do
|
32
|
-
expect(error.friendly_message).to eql 'Sorry! You are not authorized to view this.'
|
27
|
+
it 'can output the source' do
|
28
|
+
expect(error.source).to eql(token: '[FILTERED]')
|
33
29
|
end
|
34
30
|
end
|
35
31
|
end
|
data/spec/lib/human_error/errors/authentication_errors/invalid_username_or_password_error_spec.rb
CHANGED
@@ -10,29 +10,24 @@ describe InvalidUsernameOrPasswordError do
|
|
10
10
|
expect(error.http_status).to eql 401
|
11
11
|
end
|
12
12
|
|
13
|
-
it 'has a code
|
14
|
-
expect(error.code).to eql
|
13
|
+
it 'has a code' do
|
14
|
+
expect(error.code).to eql 'errors.invalid_username_or_password_error'
|
15
15
|
end
|
16
16
|
|
17
|
-
it 'has a
|
18
|
-
expect(error.
|
17
|
+
it 'has a title' do
|
18
|
+
expect(error.title).to eql 'Invalid Username/Password'
|
19
19
|
end
|
20
20
|
|
21
|
-
it 'can output the
|
22
|
-
expect(error.
|
21
|
+
it 'can output the detail' do
|
22
|
+
expect(error.detail).to eql 'Either the username or password passed in ' \
|
23
23
|
'or this request is invalid. Please ' \
|
24
24
|
'double-check and try again.'
|
25
25
|
end
|
26
26
|
|
27
|
-
it 'can output the
|
27
|
+
it 'can output the source' do
|
28
28
|
error = InvalidUsernameOrPasswordError.new username: 'neo'
|
29
29
|
|
30
|
-
expect(error.
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'can output the friendly message' do
|
34
|
-
expect(error.friendly_message).to eql 'Either your email or password is ' \
|
35
|
-
'incorrect. Please double-check and try again.'
|
30
|
+
expect(error.source).to eql(username: 'neo', password: '[FILTERED]')
|
36
31
|
end
|
37
32
|
end
|
38
33
|
end
|
@@ -15,47 +15,39 @@ describe AssociationError do
|
|
15
15
|
expect(error.http_status).to eql 422
|
16
16
|
end
|
17
17
|
|
18
|
-
it 'has a code
|
18
|
+
it 'has a code' do
|
19
19
|
error = AssociationError.new
|
20
20
|
|
21
|
-
expect(error.code).to eql
|
21
|
+
expect(error.code).to eql 'errors.association_error'
|
22
22
|
end
|
23
23
|
|
24
|
-
it 'has a
|
24
|
+
it 'has a title' do
|
25
25
|
error = AssociationError.new
|
26
26
|
|
27
|
-
expect(error.
|
27
|
+
expect(error.title).to eql 'Association Error'
|
28
28
|
end
|
29
29
|
|
30
|
-
it 'includes the resource name and action in the
|
30
|
+
it 'includes the resource name and action in the detail' do
|
31
31
|
error = AssociationError.new association_name: 'black leather trenchcoat',
|
32
32
|
resource_name: 'Neo'
|
33
33
|
|
34
|
-
expect(error.
|
34
|
+
expect(error.detail).to eql 'The black leather trenchcoat that you ' \
|
35
35
|
'attempted to associate with the Neo was ' \
|
36
36
|
'not valid.'
|
37
37
|
end
|
38
38
|
|
39
|
-
it 'includes the resource name and action in the
|
39
|
+
it 'includes the resource name and action in the source' do
|
40
40
|
error = AssociationError.new association_name: 'black leather trenchcoat',
|
41
41
|
resource_name: 'Neo',
|
42
42
|
attributes: 'what is the matrix',
|
43
43
|
association_id: '123'
|
44
44
|
|
45
|
-
expect(error.
|
45
|
+
expect(error.source).to eql(
|
46
46
|
'Neo' => 'what is the matrix',
|
47
47
|
'black leather trenchcoat id' => '123',
|
48
48
|
)
|
49
49
|
end
|
50
50
|
|
51
|
-
it 'includes the resource name and action in the friendly message' do
|
52
|
-
error = AssociationError.new association_name: 'black leather trenchcoat',
|
53
|
-
resource_name: 'Neo'
|
54
|
-
|
55
|
-
expect(error.friendly_message).to eql 'Sorry! There was a problem when we tried to ' \
|
56
|
-
'set the black leather trenchcoat on that Neo.'
|
57
|
-
end
|
58
|
-
|
59
51
|
it 'can convert an "ActiveRecord::InvalidForeignKey"' do
|
60
52
|
error = AssociationError.convert(foreign_key_error)
|
61
53
|
|
@@ -11,48 +11,40 @@ describe ResourceNotFoundError do
|
|
11
11
|
expect(error.http_status).to eql 404
|
12
12
|
end
|
13
13
|
|
14
|
-
it 'has a code
|
14
|
+
it 'has a code' do
|
15
15
|
error = ResourceNotFoundError.new
|
16
16
|
|
17
|
-
expect(error.code).to eql
|
17
|
+
expect(error.code).to eql 'errors.resource_not_found_error'
|
18
18
|
end
|
19
19
|
|
20
|
-
it 'has a
|
20
|
+
it 'has a title' do
|
21
21
|
error = ResourceNotFoundError.new
|
22
22
|
|
23
|
-
expect(error.
|
23
|
+
expect(error.title).to eql 'Resource Not Found'
|
24
24
|
end
|
25
25
|
|
26
|
-
it 'includes the resource name and action in the
|
26
|
+
it 'includes the resource name and action in the detail' do
|
27
27
|
error = ResourceNotFoundError.new resource_name: 'black leather trenchcoat',
|
28
28
|
action: 'bullet time'
|
29
29
|
|
30
|
-
expect(error.
|
30
|
+
expect(error.detail).to eql 'The black leather trenchcoat you attempted ' \
|
31
31
|
'to bullet time for this request is either ' \
|
32
32
|
'not authorized for the authenticated user ' \
|
33
33
|
'or does not exist.'
|
34
34
|
end
|
35
35
|
|
36
|
-
it 'includes the resource name and action in the
|
36
|
+
it 'includes the resource name and action in the source' do
|
37
37
|
error = ResourceNotFoundError.new resource_name: 'black leather trenchcoat',
|
38
38
|
resource_id: 123
|
39
39
|
|
40
|
-
expect(error.
|
40
|
+
expect(error.source).to eql('black_leather_trenchcoat_id' => 123)
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'can accept an array of IDs' do
|
44
44
|
error = ResourceNotFoundError.new resource_name: 'black leather trenchcoat',
|
45
45
|
resource_id: %w{123 456}
|
46
46
|
|
47
|
-
expect(error.
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'includes the resource name and action in the friendly message' do
|
51
|
-
error = ResourceNotFoundError.new resource_name: 'black leather trenchcoat',
|
52
|
-
action: 'bullet time'
|
53
|
-
|
54
|
-
expect(error.friendly_message).to eql 'Sorry! The black leather trenchcoat you ' \
|
55
|
-
'tried to bullet time does not exist.'
|
47
|
+
expect(error.source).to eql('black_leather_trenchcoat_id' => %w{123 456})
|
56
48
|
end
|
57
49
|
|
58
50
|
it 'can convert an "ActiveRecord::RecordNotFound" with no IDs' do
|
@@ -29,41 +29,33 @@ describe ResourcePersistenceError do
|
|
29
29
|
expect(error.http_status).to eql 422
|
30
30
|
end
|
31
31
|
|
32
|
-
it 'has a code
|
32
|
+
it 'has a code' do
|
33
33
|
error = ResourcePersistenceError.new
|
34
34
|
|
35
|
-
expect(error.code).to eql
|
35
|
+
expect(error.code).to eql 'errors.resource_persistence_error'
|
36
36
|
end
|
37
37
|
|
38
|
-
it 'has a
|
38
|
+
it 'has a title' do
|
39
39
|
error = ResourcePersistenceError.new
|
40
40
|
|
41
|
-
expect(error.
|
41
|
+
expect(error.title).to eql 'Resource Persistence Error'
|
42
42
|
end
|
43
43
|
|
44
|
-
it 'includes the resource name and action in the
|
44
|
+
it 'includes the resource name and action in the detail' do
|
45
45
|
error = ResourcePersistenceError.new resource_name: 'black leather trenchcoat',
|
46
46
|
action: 'bullet time'
|
47
47
|
|
48
|
-
expect(error.
|
48
|
+
expect(error.detail).to eql 'One or more of the attributes on the black ' \
|
49
49
|
'leather trenchcoat you attempted to bullet ' \
|
50
50
|
'time is invalid.'
|
51
51
|
end
|
52
52
|
|
53
|
-
it 'includes the resource name and action in the
|
53
|
+
it 'includes the resource name and action in the source' do
|
54
54
|
error = ResourcePersistenceError.new errors: 'lots of errors',
|
55
55
|
attributes: 'what is the matrix'
|
56
56
|
|
57
|
-
expect(error.
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'includes the resource name and action in the friendly message' do
|
62
|
-
error = ResourcePersistenceError.new resource_name: 'black leather trenchcoat',
|
63
|
-
action: 'bullet time'
|
64
|
-
|
65
|
-
expect(error.friendly_message).to eql 'Sorry! We had a problem when tried to ' \
|
66
|
-
'bullet time that black leather trenchcoat.'
|
57
|
+
expect(error.source).to eql('errors' => 'lots of errors',
|
58
|
+
'attributes' => 'what is the matrix')
|
67
59
|
end
|
68
60
|
|
69
61
|
it 'can convert an "ActiveRecord::RecordNotSaved"' do
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'rspectacular'
|
2
|
+
require 'human_error'
|
3
|
+
require 'action_controller'
|
4
|
+
|
5
|
+
class HumanError
|
6
|
+
module Errors
|
7
|
+
describe ParameterMissingError do
|
8
|
+
it 'has a status' do
|
9
|
+
error = ParameterMissingError.new
|
10
|
+
|
11
|
+
expect(error.http_status).to eql 400
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'has a code' do
|
15
|
+
error = ParameterMissingError.new
|
16
|
+
|
17
|
+
expect(error.code).to eql 'errors.parameter_missing_error'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'has a title' do
|
21
|
+
error = ParameterMissingError.new
|
22
|
+
|
23
|
+
expect(error.title).to eql 'Missing Parameter'
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'includes the resource name and action in the detail' do
|
27
|
+
error = ParameterMissingError.new parameter: 'trenchcoat'
|
28
|
+
|
29
|
+
expect(error.detail).to eql 'trenchcoat is a required parameter, but you did not ' \
|
30
|
+
'supply it.'
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'includes the resource name and action in the source' do
|
34
|
+
error = ParameterMissingError.new parameter: 'trenchcoat'
|
35
|
+
|
36
|
+
expect(error.source).to eql('required_parameter' => 'trenchcoat')
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'can convert an "ActionController::ParameterMissing"' do
|
40
|
+
parameter_missing_error = ActionController::ParameterMissing.new('trenchcoat')
|
41
|
+
error = ParameterMissingError.convert(parameter_missing_error)
|
42
|
+
|
43
|
+
expect(error.parameter).to eql 'trenchcoat'
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'can convert an "ActionController::ParameterMissing" while overriding attributes' do
|
47
|
+
parameter_missing_error = ActionController::ParameterMissing.new('trenchcoat')
|
48
|
+
error = ParameterMissingError.convert(parameter_missing_error,
|
49
|
+
parameter: 'matrix')
|
50
|
+
|
51
|
+
expect(error.parameter).to eql 'matrix'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'rspectacular'
|
2
|
+
require 'human_error'
|
3
|
+
require 'action_controller'
|
4
|
+
|
5
|
+
class HumanError
|
6
|
+
module Errors
|
7
|
+
describe UnpermittedParametersError do
|
8
|
+
it 'has a status' do
|
9
|
+
error = UnpermittedParametersError.new
|
10
|
+
|
11
|
+
expect(error.http_status).to eql 400
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'has a code' do
|
15
|
+
error = UnpermittedParametersError.new
|
16
|
+
|
17
|
+
expect(error.code).to eql 'errors.unpermitted_parameters_error'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'has a title' do
|
21
|
+
error = UnpermittedParametersError.new
|
22
|
+
|
23
|
+
expect(error.title).to eql 'Unpermitted Parameters'
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'includes the resource name and action in the detail' do
|
27
|
+
error = UnpermittedParametersError.new parameters: 'trenchcoat'
|
28
|
+
|
29
|
+
expect(error.detail).to eql 'The following parameters passed are not allowed: ' \
|
30
|
+
'trenchcoat'
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'includes the resource name and action in the detail' do
|
34
|
+
error = UnpermittedParametersError.new parameters: %w{trenchcoat matrix}
|
35
|
+
|
36
|
+
expect(error.detail).to eql 'The following parameters passed are not allowed: ' \
|
37
|
+
'trenchcoat, matrix'
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'includes the resource name and action in the source' do
|
41
|
+
error = UnpermittedParametersError.new parameters: 'trenchcoat'
|
42
|
+
|
43
|
+
expect(error.source).to eql('unpermitted_parameters' => ['trenchcoat'])
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'can convert an "ActionController::UnpermittedParameters"' do
|
47
|
+
parameters_error = ActionController::UnpermittedParameters.new(%w{trenchcoat})
|
48
|
+
error = UnpermittedParametersError.convert(parameters_error)
|
49
|
+
|
50
|
+
expect(error.parameters).to eql %w{trenchcoat}
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'can convert an "ActionController::ParameterMissing" while overriding attributes' do
|
54
|
+
parameters_error = ActionController::UnpermittedParameters.new(%w{trenchcoat})
|
55
|
+
error = UnpermittedParametersError.convert(parameters_error,
|
56
|
+
parameters: 'matrix')
|
57
|
+
|
58
|
+
expect(error.parameters).to eql %w{matrix}
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -7,66 +7,13 @@ describe HumanError do
|
|
7
7
|
ActiveRecord::RecordNotFound.new("Couldn't find resource with 'id'=3")
|
8
8
|
end
|
9
9
|
|
10
|
-
it 'can create an instance of HumanError' do
|
11
|
-
expect(HumanError.new).to be_a HumanError
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'can configure each instance' do
|
15
|
-
human_error = HumanError.new do |config|
|
16
|
-
config.api_version = 'foo'
|
17
|
-
end
|
18
|
-
|
19
|
-
expect(human_error.configuration.api_version).to eql 'foo'
|
20
|
-
end
|
21
|
-
|
22
10
|
it 'can lookup errors' do
|
23
|
-
|
24
|
-
|
25
|
-
expect(human_error.fetch('RequestError')).to eql HumanError::Errors::RequestError
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'can lookup errors based on the local configuration' do
|
29
|
-
human_error = HumanError.new do |config|
|
30
|
-
config.api_version = 'foo'
|
31
|
-
end
|
32
|
-
|
33
|
-
fetched_error = human_error.convert(original_error)
|
34
|
-
|
35
|
-
expect(fetched_error.api_version).to eql 'foo'
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'can override values in the global configuration with values in the local' \
|
39
|
-
'configuration when looking up an error' do
|
40
|
-
|
41
|
-
HumanError.configure do |config|
|
42
|
-
config.api_version = 'bar'
|
43
|
-
end
|
44
|
-
|
45
|
-
human_error = HumanError.new do |config|
|
46
|
-
config.api_version = 'foo'
|
47
|
-
end
|
48
|
-
|
49
|
-
fetched_error = human_error.convert(original_error)
|
50
|
-
|
51
|
-
expect(fetched_error.api_version).to eql 'foo'
|
52
|
-
end
|
53
|
-
|
54
|
-
it 'can override values in the local configuration with explicit values passed when' \
|
55
|
-
'looking up an error' do
|
56
|
-
|
57
|
-
human_error = HumanError.new do |config|
|
58
|
-
config.api_version = 'foo'
|
59
|
-
end
|
60
|
-
|
61
|
-
fetched_error = human_error.convert(original_error, api_version: 'bar')
|
62
|
-
|
63
|
-
expect(fetched_error.api_version).to eql 'bar'
|
11
|
+
expect(HumanError.fetch('InvalidTokenError')).to \
|
12
|
+
eql HumanError::Errors::InvalidTokenError
|
64
13
|
end
|
65
14
|
|
66
15
|
it 'can raise an error' do
|
67
|
-
|
68
|
-
|
69
|
-
expect { human_error.raise('RequestError') }.to \
|
70
|
-
raise_error HumanError::Errors::RequestError
|
16
|
+
expect { HumanError.raise('InvalidTokenError') }.to \
|
17
|
+
raise_error HumanError::Errors::InvalidTokenError
|
71
18
|
end
|
72
19
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: human_error
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jfelchner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.64'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
40
|
+
version: '0.64'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: activerecord
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '4.1'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: actionpack
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4.1'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4.1'
|
55
69
|
description: ''
|
56
70
|
email: accounts+git@thekompanee.com
|
57
71
|
executables: []
|
@@ -64,8 +78,6 @@ files:
|
|
64
78
|
- lib/human_error.rb
|
65
79
|
- lib/human_error/configuration.rb
|
66
80
|
- lib/human_error/error.rb
|
67
|
-
- lib/human_error/error_code_directory.rb
|
68
|
-
- lib/human_error/errors.rb
|
69
81
|
- lib/human_error/errors/authentication_error.rb
|
70
82
|
- lib/human_error/errors/authentication_errors/duplicate_authentication_error.rb
|
71
83
|
- lib/human_error/errors/authentication_errors/invalid_token_error.rb
|
@@ -74,11 +86,11 @@ files:
|
|
74
86
|
- lib/human_error/errors/crud_errors/association_error.rb
|
75
87
|
- lib/human_error/errors/crud_errors/resource_not_found_error.rb
|
76
88
|
- lib/human_error/errors/crud_errors/resource_persistence_error.rb
|
77
|
-
- lib/human_error/errors/
|
78
|
-
- lib/human_error/
|
89
|
+
- lib/human_error/errors/request_errors/parameter_missing_error.rb
|
90
|
+
- lib/human_error/errors/request_errors/unpermitted_parameters_error.rb
|
79
91
|
- lib/human_error/rescuable_resource.rb
|
80
92
|
- lib/human_error/utilities/string.rb
|
81
|
-
- lib/human_error/
|
93
|
+
- lib/human_error/verifiable_resource.rb
|
82
94
|
- lib/human_error/version.rb
|
83
95
|
- spec/lib/human_error/configuration_spec.rb
|
84
96
|
- spec/lib/human_error/error_spec.rb
|
@@ -88,7 +100,8 @@ files:
|
|
88
100
|
- spec/lib/human_error/errors/crud_errors/association_error_spec.rb
|
89
101
|
- spec/lib/human_error/errors/crud_errors/resource_not_found_error_spec.rb
|
90
102
|
- spec/lib/human_error/errors/crud_errors/resource_persistence_error_spec.rb
|
91
|
-
- spec/lib/human_error/errors/
|
103
|
+
- spec/lib/human_error/errors/request_errors/parameter_missing_error_spec.rb
|
104
|
+
- spec/lib/human_error/errors/request_errors/unpermitted_parameters_error_spec.rb
|
92
105
|
- spec/lib/human_error/rescuable_resource_spec.rb
|
93
106
|
- spec/lib/human_error_spec.rb
|
94
107
|
homepage: https://github.com/thekompanee/human_error
|
@@ -111,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
124
|
version: '0'
|
112
125
|
requirements: []
|
113
126
|
rubyforge_project:
|
114
|
-
rubygems_version: 2.4.
|
127
|
+
rubygems_version: 2.4.8
|
115
128
|
signing_key:
|
116
129
|
specification_version: 4
|
117
130
|
summary: Common Error Extensions and Helpers
|
@@ -124,6 +137,7 @@ test_files:
|
|
124
137
|
- spec/lib/human_error/errors/crud_errors/association_error_spec.rb
|
125
138
|
- spec/lib/human_error/errors/crud_errors/resource_not_found_error_spec.rb
|
126
139
|
- spec/lib/human_error/errors/crud_errors/resource_persistence_error_spec.rb
|
127
|
-
- spec/lib/human_error/errors/
|
140
|
+
- spec/lib/human_error/errors/request_errors/parameter_missing_error_spec.rb
|
141
|
+
- spec/lib/human_error/errors/request_errors/unpermitted_parameters_error_spec.rb
|
128
142
|
- spec/lib/human_error/rescuable_resource_spec.rb
|
129
143
|
- spec/lib/human_error_spec.rb
|