human_error 1.13.0 → 1.13.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/lib/human_error/configuration.rb +3 -3
  4. data/lib/human_error/error.rb +3 -3
  5. data/lib/human_error/error_code_directory.rb +0 -2
  6. data/lib/human_error/errors/authentication_errors/duplicate_authentication_error.rb +6 -4
  7. data/lib/human_error/errors/authentication_errors/invalid_token_error.rb +2 -1
  8. data/lib/human_error/errors/authentication_errors/invalid_username_or_password_error.rb +3 -2
  9. data/lib/human_error/errors/crud_error.rb +7 -1
  10. data/lib/human_error/errors/crud_errors/association_error.rb +5 -3
  11. data/lib/human_error/errors/crud_errors/resource_not_found_error.rb +3 -2
  12. data/lib/human_error/errors/crud_errors/resource_persistence_error.rb +2 -1
  13. data/lib/human_error/errors/request_error.rb +2 -2
  14. data/lib/human_error/knowledgebase_id_directory.rb +0 -2
  15. data/lib/human_error/persistable.rb +8 -8
  16. data/lib/human_error/rescuable_resource.rb +3 -1
  17. data/lib/human_error/utilities/string.rb +6 -4
  18. data/lib/human_error/version.rb +1 -1
  19. data/spec/lib/human_error/configuration_spec.rb +1 -1
  20. data/spec/lib/human_error/errors/authentication_errors/duplicate_authentication_error_spec.rb +15 -10
  21. data/spec/lib/human_error/errors/authentication_errors/invalid_token_error_spec.rb +3 -1
  22. data/spec/lib/human_error/errors/authentication_errors/invalid_username_or_password_error_spec.rb +6 -3
  23. data/spec/lib/human_error/errors/crud_errors/association_error_spec.rb +5 -2
  24. data/spec/lib/human_error/errors/crud_errors/resource_not_found_error_spec.rb +8 -4
  25. data/spec/lib/human_error/errors/crud_errors/resource_persistence_error_spec.rb +7 -4
  26. data/spec/lib/human_error/errors/request_error_spec.rb +33 -33
  27. data/spec/lib/human_error_spec.rb +9 -4
  28. metadata +4 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 61e8a54c3abf9df5cacb6bcfb6702b8964dc6c32
4
- data.tar.gz: 3449d88835d1b017f56a632f474384af2361cb81
3
+ metadata.gz: c394fa00941174a6e152654477b2214034b41175
4
+ data.tar.gz: 4c88363e4f4a1f840f33738ea969c165c47c60ad
5
5
  SHA512:
6
- metadata.gz: 2f2be721a2815a231526b6a2583cefac5c0545c2448b3d0c20344875c571775608fc36db656dfffc6f3d2e520d93ff556b041e0ad8126fbda57d834779262654
7
- data.tar.gz: 23e785ed602cbc7871868ed959a88c55dc017f071086505e0b9acbc32f13d3da06f61c485d75d9e81a06ce8a6b4fc23373fc7d4df89aa14dd1910679cc4790f4
6
+ metadata.gz: a1c953c6f85b4a22855da2694719be0c825736e0582ca2c0706d6b59872a957966347a399a6e08b13eadf2e00d25ad81a336c9d40c9b78a024a2ba95b05e524c
7
+ data.tar.gz: b14efed87f7bf7334b6b78c537058bdf01e192ed3233c9eb054342a85bffa4f3073a2283b0ced25301693025ed43b7f8d1ae7bda28f7404364dfa1f393b25466
data/Rakefile CHANGED
@@ -1 +1 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
@@ -6,9 +6,9 @@ class HumanError
6
6
 
7
7
  def to_h
8
8
  {
9
- knowledgebase_url: knowledgebase_url,
10
- api_error_documentation_url: api_error_documentation_url,
11
- api_version: api_version,
9
+ knowledgebase_url: knowledgebase_url,
10
+ api_error_documentation_url: api_error_documentation_url,
11
+ api_version: api_version,
12
12
  }
13
13
  end
14
14
  end
@@ -26,7 +26,7 @@ module Error
26
26
  self.knowledgebase_url = configuration.knowledgebase_url
27
27
 
28
28
  args.each do |variable, value|
29
- self.send("#{variable}=", value)
29
+ send("#{variable}=", value)
30
30
  end
31
31
  end
32
32
 
@@ -46,7 +46,7 @@ module Error
46
46
  "#{knowledgebase_url}/#{knowledgebase_article_id}"
47
47
  end
48
48
 
49
- def to_json(options = {})
49
+ def to_json(_options = {})
50
50
  JSON.dump(as_json)
51
51
  end
52
52
 
@@ -61,7 +61,7 @@ module Error
61
61
  end
62
62
 
63
63
  def developer_message
64
- raise NoMethodError, 'This method must be implemented in a subclass'
64
+ fail NoMethodError, 'This method must be implemented in a subclass'
65
65
  end
66
66
 
67
67
  def self.included(base)
@@ -4,8 +4,6 @@ class ErrorCodeDirectory
4
4
  directory[error_class]
5
5
  end
6
6
 
7
- private
8
-
9
7
  def self.directory
10
8
  {
11
9
  'HumanError::Errors::InvalidTokenError' => 1003,
@@ -15,14 +15,16 @@ class DuplicateAuthenticationError < RequestError
15
15
  end
16
16
 
17
17
  def developer_message
18
- 'The authentication you attempted to register has already been registered by another user. We do not currently support allowing multiple users to be connected to the same authentication.'
18
+ 'The authentication you attempted to register has already been registered by ' \
19
+ 'another user. We do not currently support allowing multiple users to be connected ' \
20
+ 'to the same authentication.'
19
21
  end
20
22
 
21
23
  def developer_details
22
24
  {
23
- 'provider' => provider,
24
- 'provider_user_id' => provider_user_id,
25
- 'user_id' => user_id,
25
+ 'provider' => provider,
26
+ 'provider_user_id' => provider_user_id,
27
+ 'user_id' => user_id,
26
28
  }
27
29
  end
28
30
 
@@ -13,7 +13,8 @@ class InvalidTokenError < RequestError
13
13
  end
14
14
 
15
15
  def developer_message
16
- 'The token you attempted to use for this request is invalid for this resource. Please double-check and try again.'
16
+ 'The token you attempted to use for this request is invalid for this resource. ' \
17
+ 'Please double-check and try again.'
17
18
  end
18
19
 
19
20
  def developer_details
@@ -13,11 +13,12 @@ class InvalidUsernameOrPasswordError < RequestError
13
13
  end
14
14
 
15
15
  def developer_message
16
- 'Either the username or password passed in or this request is invalid. Please double-check and try again.'
16
+ 'Either the username or password passed in or this request is invalid. Please ' \
17
+ 'double-check and try again.'
17
18
  end
18
19
 
19
20
  def developer_details
20
- { :username => username, :password => '[FILTERED]' }
21
+ { username: username, password: '[FILTERED]' }
21
22
  end
22
23
 
23
24
  def friendly_message
@@ -10,7 +10,13 @@ module CrudError
10
10
  self.action = action || 'persist'
11
11
  self.resource_id = resource_id
12
12
 
13
- super **args
13
+ super(**args)
14
+ end
15
+
16
+ private
17
+
18
+ def resource_name_underscored
19
+ @resource_name_underscored ||= resource_name.gsub(/\s/, '_')
14
20
  end
15
21
  end
16
22
  end
@@ -15,18 +15,20 @@ class AssociationError < RequestError
15
15
  end
16
16
 
17
17
  def developer_message
18
- "The #{association_name} that you attempted to associate with the #{resource_name} was not valid."
18
+ "The #{association_name} that you attempted to associate with " \
19
+ "the #{resource_name} was not valid."
19
20
  end
20
21
 
21
22
  def developer_details
22
23
  {
23
24
  resource_name => attributes,
24
- "#{association_name} id" => association_id
25
+ "#{association_name} id" => association_id,
25
26
  }
26
27
  end
27
28
 
28
29
  def friendly_message
29
- "Sorry! There was a problem when we tried to set the #{association_name} on that #{resource_name}."
30
+ "Sorry! There was a problem when we tried to set the #{association_name} on " \
31
+ "that #{resource_name}."
30
32
  end
31
33
  end
32
34
  end
@@ -11,11 +11,12 @@ class ResourceNotFoundError < RequestError
11
11
  end
12
12
 
13
13
  def developer_message
14
- "The #{resource_name} you attempted to #{action} for this request is either not authorized for the authenticated user or does not exist."
14
+ "The #{resource_name} you attempted to #{action} for this request is either " \
15
+ 'not authorized for the authenticated user or does not exist.'
15
16
  end
16
17
 
17
18
  def developer_details
18
- { "#{resource_name}_id" => resource_id }
19
+ { "#{resource_name_underscored}_id" => resource_id }
19
20
  end
20
21
 
21
22
  def friendly_message
@@ -14,7 +14,8 @@ class ResourcePersistenceError < RequestError
14
14
  end
15
15
 
16
16
  def developer_message
17
- "One or more of the attributes on the #{resource_name} you attempted to #{action} is invalid."
17
+ "One or more of the attributes on the #{resource_name} you attempted " \
18
+ "to #{action} is invalid."
18
19
  end
19
20
 
20
21
  def developer_details
@@ -11,7 +11,7 @@ class RequestError < RuntimeError
11
11
  :developer_details,
12
12
  :friendly_message
13
13
 
14
- def as_json(options = {})
14
+ def as_json(_options = {})
15
15
  {
16
16
  error: {
17
17
  status: http_status,
@@ -23,7 +23,7 @@ class RequestError < RuntimeError
23
23
  developer_details: developer_details,
24
24
  friendly_message_key: friendly_message_key,
25
25
  friendly_message: friendly_message,
26
- }
26
+ },
27
27
  }
28
28
  end
29
29
 
@@ -4,8 +4,6 @@ class KnowledgebaseIdDirectory
4
4
  directory[error_class]
5
5
  end
6
6
 
7
- private
8
-
9
7
  def self.directory
10
8
  {
11
9
  'HumanError::Errors::InvalidTokenError' => '1234567890',
@@ -8,14 +8,14 @@ module Persistable
8
8
  when /\ACouldn't find .* without an ID\z/
9
9
  []
10
10
  when /\ACouldn't find .* with \'.*\'=([a-f0-9\-]+)/
11
- [$1]
11
+ [Regexp.last_match(1)]
12
12
  when /\ACouldn't find all .* with \'.*\': ((?:[a-f0-9\-]+(?:, )?)+)/
13
- $1.split(', ')
13
+ Regexp.last_match(1).split(', ')
14
14
  end
15
15
 
16
16
  raise HumanError::Errors::ResourceNotFoundError.new(
17
- resource_name: Persistable.human_error_resource_name(self),
18
- resource_id: ids)
17
+ resource_name: Persistable.human_error_resource_name(self),
18
+ resource_id: ids)
19
19
  end
20
20
  end
21
21
 
@@ -32,11 +32,11 @@ module Persistable
32
32
  association_name: association_name,
33
33
  association_id: association_id,
34
34
  attributes: attributes)
35
- rescue ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved => e
35
+ rescue ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved
36
36
  raise HumanError::Errors::ResourcePersistenceError.new(
37
- resource_name: Persistable.human_error_resource_name(self.class),
38
- attributes: attributes,
39
- errors: errors.full_messages)
37
+ resource_name: Persistable.human_error_resource_name(self.class),
38
+ attributes: attributes,
39
+ errors: errors.full_messages)
40
40
  end
41
41
 
42
42
  def self.human_error_resource_name(klass)
@@ -5,7 +5,8 @@ require 'human_error/errors/crud_errors/association_error'
5
5
  class HumanError
6
6
  module RescuableResource
7
7
  module ClassMethods
8
- def rescue_resource(resource_name, from:, via:)
8
+ # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Style/GuardClause
9
+ def rescue_resource(_resource_name, from:, via:)
9
10
  lookup_library = via
10
11
 
11
12
  if from.include? 'persistence'
@@ -51,6 +52,7 @@ module RescuableResource
51
52
  end
52
53
  end
53
54
  end
55
+ # rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Style/GuardClause
54
56
  end
55
57
 
56
58
  def self.included(base)
@@ -3,10 +3,12 @@ module Utilities
3
3
  class String
4
4
  def self.underscore(other)
5
5
  word = other.to_s.gsub('::', '/')
6
- word.gsub!(/(?:([A-Za-z\d])|^)(?=\b|[^a-z])/) { "#{$1}#{$1 && ''}" }
7
- word.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
8
- word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
9
- word.tr!("-", "_")
6
+ word.gsub!(/(?:([A-Za-z\d])|^)(?=\b|[^a-z])/) do
7
+ "#{Regexp.last_match(1)}#{Regexp.last_match(1) && ''}"
8
+ end
9
+ word.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
10
+ word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
11
+ word.tr!('-', '_')
10
12
  word.downcase!
11
13
  word
12
14
  end
@@ -1,3 +1,3 @@
1
1
  class HumanError
2
- VERSION = '1.13.0'
2
+ VERSION = '1.13.3'
3
3
  end
@@ -33,7 +33,7 @@ describe Configuration do
33
33
  expect(configuration.to_h).to eql(
34
34
  knowledgebase_url: 'knowledgebase_url',
35
35
  api_error_documentation_url: 'api_error_documentation_url',
36
- api_version: 'api_version',)
36
+ api_version: 'api_version')
37
37
  end
38
38
  end
39
39
  end
@@ -4,9 +4,11 @@ require 'human_error/errors/authentication_errors/duplicate_authentication_error
4
4
  class HumanError
5
5
  module Errors
6
6
  describe DuplicateAuthenticationError do
7
- let(:error) { DuplicateAuthenticationError.new(provider: 'flibbity',
8
- provider_user_id: '12345',
9
- user_id: '54321',) }
7
+ let(:error) do
8
+ DuplicateAuthenticationError.new(provider: 'flibbity',
9
+ provider_user_id: '12345',
10
+ user_id: '54321')
11
+ end
10
12
 
11
13
  it 'has a status of 409' do
12
14
  expect(error.http_status).to eql 409
@@ -21,21 +23,24 @@ describe DuplicateAuthenticationError do
21
23
  end
22
24
 
23
25
  it 'can output the developer message' do
24
- expect(error.developer_message).to eql 'The authentication you attempted to register has already been registered by another user. We do not currently support allowing multiple users to be connected to the same authentication.'
26
+ expect(error.developer_message).to eql 'The authentication you attempted to ' \
27
+ 'register has already been registered by ' \
28
+ 'another user. We do not currently support ' \
29
+ 'allowing multiple users to be connected to ' \
30
+ 'the same authentication.'
25
31
  end
26
32
 
27
33
  it 'can output the developer details' do
28
34
  expect(error.developer_details).to eql(
29
- {
30
- 'provider' => 'flibbity',
31
- 'provider_user_id' => '12345',
32
- 'user_id' => '54321',
33
- }
35
+ 'provider' => 'flibbity',
36
+ 'provider_user_id' => '12345',
37
+ 'user_id' => '54321',
34
38
  )
35
39
  end
36
40
 
37
41
  it 'can output the friendly message' do
38
- expect(error.friendly_message).to eql 'Sorry! Someone else has already registered this flibbity login.'
42
+ expect(error.friendly_message).to eql 'Sorry! Someone else has already registered ' \
43
+ 'this flibbity login.'
39
44
  end
40
45
  end
41
46
  end
@@ -19,7 +19,9 @@ describe InvalidTokenError do
19
19
  end
20
20
 
21
21
  it 'can output the developer message' do
22
- expect(error.developer_message).to eql 'The token you attempted to use for this request is invalid for this resource. Please double-check and try again.'
22
+ expect(error.developer_message).to eql 'The token you attempted to use for this ' \
23
+ 'request is invalid for this resource. ' \
24
+ 'Please double-check and try again.'
23
25
  end
24
26
 
25
27
  it 'can output the developer details' do
@@ -19,17 +19,20 @@ describe InvalidUsernameOrPasswordError do
19
19
  end
20
20
 
21
21
  it 'can output the developer message' do
22
- expect(error.developer_message).to eql 'Either the username or password passed in or this request is invalid. Please double-check and try again.'
22
+ expect(error.developer_message).to eql 'Either the username or password passed in ' \
23
+ 'or this request is invalid. Please ' \
24
+ 'double-check and try again.'
23
25
  end
24
26
 
25
27
  it 'can output the developer details' do
26
28
  error = InvalidUsernameOrPasswordError.new username: 'neo'
27
29
 
28
- expect(error.developer_details).to eql(:username => 'neo', :password => '[FILTERED]')
30
+ expect(error.developer_details).to eql(username: 'neo', password: '[FILTERED]')
29
31
  end
30
32
 
31
33
  it 'can output the friendly message' do
32
- expect(error.friendly_message).to eql 'Either your email or password is incorrect. Please double-check and try again.'
34
+ expect(error.friendly_message).to eql 'Either your email or password is ' \
35
+ 'incorrect. Please double-check and try again.'
33
36
  end
34
37
  end
35
38
  end
@@ -22,7 +22,9 @@ describe AssociationError do
22
22
  error = AssociationError.new association_name: 'black leather trenchcoat',
23
23
  resource_name: 'Neo'
24
24
 
25
- expect(error.developer_message).to eql "The black leather trenchcoat that you attempted to associate with the Neo was not valid."
25
+ expect(error.developer_message).to eql 'The black leather trenchcoat that you ' \
26
+ 'attempted to associate with the Neo was ' \
27
+ 'not valid.'
26
28
  end
27
29
 
28
30
  it 'includes the resource name and action in the developer details' do
@@ -41,7 +43,8 @@ describe AssociationError do
41
43
  error = AssociationError.new association_name: 'black leather trenchcoat',
42
44
  resource_name: 'Neo'
43
45
 
44
- expect(error.friendly_message).to eql "Sorry! There was a problem when we tried to set the black leather trenchcoat on that Neo."
46
+ expect(error.friendly_message).to eql 'Sorry! There was a problem when we tried to ' \
47
+ 'set the black leather trenchcoat on that Neo.'
45
48
  end
46
49
  end
47
50
  end
@@ -22,28 +22,32 @@ describe ResourceNotFoundError do
22
22
  error = ResourceNotFoundError.new resource_name: 'black leather trenchcoat',
23
23
  action: 'bullet time'
24
24
 
25
- expect(error.developer_message).to eql "The black leather trenchcoat you attempted to bullet time for this request is either not authorized for the authenticated user or does not exist."
25
+ expect(error.developer_message).to eql 'The black leather trenchcoat you attempted ' \
26
+ 'to bullet time for this request is either ' \
27
+ 'not authorized for the authenticated user ' \
28
+ 'or does not exist.'
26
29
  end
27
30
 
28
31
  it 'includes the resource name and action in the developer details' do
29
32
  error = ResourceNotFoundError.new resource_name: 'black leather trenchcoat',
30
33
  resource_id: 123
31
34
 
32
- expect(error.developer_details).to eql("black leather trenchcoat_id" => 123)
35
+ expect(error.developer_details).to eql('black_leather_trenchcoat_id' => 123)
33
36
  end
34
37
 
35
38
  it 'can accept an array of IDs' do
36
39
  error = ResourceNotFoundError.new resource_name: 'black leather trenchcoat',
37
40
  resource_id: %w{123 456}
38
41
 
39
- expect(error.developer_details).to eql("black leather trenchcoat_id" => %w{123 456})
42
+ expect(error.developer_details).to eql('black_leather_trenchcoat_id' => %w{123 456})
40
43
  end
41
44
 
42
45
  it 'includes the resource name and action in the friendly message' do
43
46
  error = ResourceNotFoundError.new resource_name: 'black leather trenchcoat',
44
47
  action: 'bullet time'
45
48
 
46
- expect(error.friendly_message).to eql "Sorry! The black leather trenchcoat you tried to bullet time does not exist."
49
+ expect(error.friendly_message).to eql 'Sorry! The black leather trenchcoat you ' \
50
+ 'tried to bullet time does not exist.'
47
51
  end
48
52
  end
49
53
  end
@@ -22,12 +22,14 @@ describe ResourcePersistenceError do
22
22
  error = ResourcePersistenceError.new resource_name: 'black leather trenchcoat',
23
23
  action: 'bullet time'
24
24
 
25
- expect(error.developer_message).to eql "One or more of the attributes on the black leather trenchcoat you attempted to bullet time is invalid."
25
+ expect(error.developer_message).to eql 'One or more of the attributes on the black ' \
26
+ 'leather trenchcoat you attempted to bullet ' \
27
+ 'time is invalid.'
26
28
  end
27
29
 
28
30
  it 'includes the resource name and action in the developer details' do
29
- error = ResourcePersistenceError.new errors: 'lots of errors',
30
- attributes: 'what is the matrix'
31
+ error = ResourcePersistenceError.new errors: 'lots of errors',
32
+ attributes: 'what is the matrix'
31
33
 
32
34
  expect(error.developer_details).to eql('errors' => 'lots of errors',
33
35
  'attributes' => 'what is the matrix')
@@ -37,7 +39,8 @@ describe ResourcePersistenceError do
37
39
  error = ResourcePersistenceError.new resource_name: 'black leather trenchcoat',
38
40
  action: 'bullet time'
39
41
 
40
- expect(error.friendly_message).to eql "Sorry! We had a problem when tried to bullet time that black leather trenchcoat."
42
+ expect(error.friendly_message).to eql 'Sorry! We had a problem when tried to ' \
43
+ 'bullet time that black leather trenchcoat.'
41
44
  end
42
45
  end
43
46
  end
@@ -5,17 +5,18 @@ class HumanError
5
5
  module Errors
6
6
  describe RequestError do
7
7
  it 'can generate error data' do
8
- request_error = RequestError.new(http_status: 'flibbity',
9
- code: 'jibbit',
10
- developer_message: 'I cannot receive any satisfaction',
11
- developer_details: 'But perhaps if I attempt it one more time, I can',
12
- friendly_message: 'receive what I need',
13
- knowledgebase_article_id: '87654321',
14
- api_version: 'janky',
15
- api_error_documentation_url: 'asimof',
16
- knowledgebase_url: 'jinkies')
8
+ request_error = RequestError.new(
9
+ http_status: 'flibbity',
10
+ code: 'jibbit',
11
+ developer_message: 'I cannot receive any satisfaction',
12
+ developer_details: 'But perhaps if I attempt it one more time, I can',
13
+ friendly_message: 'receive what I need',
14
+ knowledgebase_article_id: '87654321',
15
+ api_version: 'janky',
16
+ api_error_documentation_url: 'asimof',
17
+ knowledgebase_url: 'jinkies')
17
18
 
18
- expect(request_error.as_json).to eql({
19
+ expect(request_error.as_json).to eql(
19
20
  error: {
20
21
  status: 'flibbity',
21
22
  code: 'jibbit',
@@ -26,8 +27,7 @@ describe RequestError do
26
27
  developer_details: 'But perhaps if I attempt it one more time, I can',
27
28
  friendly_message_key: 'errors.request.error.friendly',
28
29
  friendly_message: 'receive what I need',
29
- }
30
- })
30
+ })
31
31
  end
32
32
 
33
33
  it 'can extract configuration from the global config if it is not passed in' do
@@ -37,14 +37,15 @@ describe RequestError do
37
37
  config.knowledgebase_url = 'jinkies'
38
38
  end
39
39
 
40
- request_error = RequestError.new(http_status: 'flibbity',
41
- code: 'jibbit',
42
- developer_message: 'I cannot receive any satisfaction',
43
- developer_details: 'But perhaps if I attempt it one more time, I can',
44
- friendly_message: 'receive what I need',
45
- knowledgebase_article_id: '87654321')
40
+ request_error = RequestError.new(
41
+ http_status: 'flibbity',
42
+ code: 'jibbit',
43
+ developer_message: 'I cannot receive any satisfaction',
44
+ developer_details: 'But perhaps if I attempt it one more time, I can',
45
+ friendly_message: 'receive what I need',
46
+ knowledgebase_article_id: '87654321')
46
47
 
47
- expect(request_error.as_json).to eql({
48
+ expect(request_error.as_json).to eql(
48
49
  error: {
49
50
  status: 'flibbity',
50
51
  code: 'jibbit',
@@ -55,8 +56,7 @@ describe RequestError do
55
56
  developer_details: 'But perhaps if I attempt it one more time, I can',
56
57
  friendly_message_key: 'errors.request.error.friendly',
57
58
  friendly_message: 'receive what I need',
58
- }
59
- })
59
+ })
60
60
  end
61
61
 
62
62
  it 'can override the global config if it is set, but an explicit value is passed in' do
@@ -66,17 +66,18 @@ describe RequestError do
66
66
  config.knowledgebase_url = 'jinkies'
67
67
  end
68
68
 
69
- request_error = RequestError.new(http_status: 'flibbity',
70
- code: 'jibbit',
71
- developer_message: 'I cannot receive any satisfaction',
72
- developer_details: 'But perhaps if I attempt it one more time, I can',
73
- friendly_message: 'receive what I need',
74
- knowledgebase_article_id: '87654321',
75
- api_version: 'hanky',
76
- api_error_documentation_url: 'hasimof',
77
- knowledgebase_url: 'hinkies')
69
+ request_error = RequestError.new(
70
+ http_status: 'flibbity',
71
+ code: 'jibbit',
72
+ developer_message: 'I cannot receive any satisfaction',
73
+ developer_details: 'But perhaps if I attempt it one more time, I can',
74
+ friendly_message: 'receive what I need',
75
+ knowledgebase_article_id: '87654321',
76
+ api_version: 'hanky',
77
+ api_error_documentation_url: 'hasimof',
78
+ knowledgebase_url: 'hinkies')
78
79
 
79
- expect(request_error.as_json).to eql({
80
+ expect(request_error.as_json).to eql(
80
81
  error: {
81
82
  status: 'flibbity',
82
83
  code: 'jibbit',
@@ -87,8 +88,7 @@ describe RequestError do
87
88
  developer_details: 'But perhaps if I attempt it one more time, I can',
88
89
  friendly_message_key: 'errors.request.error.friendly',
89
90
  friendly_message: 'receive what I need',
90
- }
91
- })
91
+ })
92
92
  end
93
93
  end
94
94
  end
@@ -9,7 +9,7 @@ describe HumanError do
9
9
  it 'can configure each instance' do
10
10
  human_error = HumanError.new do |config|
11
11
  config.api_version = 'foo'
12
- end
12
+ end
13
13
 
14
14
  expect(human_error.configuration.api_version).to eql 'foo'
15
15
  end
@@ -30,7 +30,9 @@ describe HumanError do
30
30
  expect(fetched_error.api_version).to eql 'foo'
31
31
  end
32
32
 
33
- it 'can override values in the global configuration with values in the local configuration when looking up an error' do
33
+ it 'can override values in the global configuration with values in the local' \
34
+ 'configuration when looking up an error' do
35
+
34
36
  HumanError.configure do |config|
35
37
  config.api_version = 'bar'
36
38
  end
@@ -44,7 +46,9 @@ describe HumanError do
44
46
  expect(fetched_error.api_version).to eql 'foo'
45
47
  end
46
48
 
47
- it 'can override values in the local configuration with explicit values passed when looking up an error' do
49
+ it 'can override values in the local configuration with explicit values passed when' \
50
+ 'looking up an error' do
51
+
48
52
  human_error = HumanError.new do |config|
49
53
  config.api_version = 'foo'
50
54
  end
@@ -57,6 +61,7 @@ describe HumanError do
57
61
  it 'can raise an error' do
58
62
  human_error = HumanError.new
59
63
 
60
- expect { human_error.raise('RequestError') }.to raise_error HumanError::Errors::RequestError
64
+ expect { human_error.raise('RequestError') }.to \
65
+ raise_error HumanError::Errors::RequestError
61
66
  end
62
67
  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: 1.13.0
4
+ version: 1.13.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - jfelchner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-06 00:00:00.000000000 Z
11
+ date: 2015-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -111,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
111
  version: '0'
112
112
  requirements: []
113
113
  rubyforge_project:
114
- rubygems_version: 2.4.2
114
+ rubygems_version: 2.2.2
115
115
  signing_key:
116
116
  specification_version: 4
117
117
  summary: Common Error Extensions and Helpers
@@ -127,3 +127,4 @@ test_files:
127
127
  - spec/lib/human_error/errors/request_error_spec.rb
128
128
  - spec/lib/human_error/rescuable_resource_spec.rb
129
129
  - spec/lib/human_error_spec.rb
130
+ has_rdoc: