minato_error_handler 0.1.2.pre.1 → 0.1.2.pre.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a3c1af39e732bbb24c8de7de0872caaa1a7f65537b5e0df5fae441c614dfdb5
4
- data.tar.gz: a09eb1a8f5f8481b6310f8ccce2cb31a164718c6ecd3067712b9f8ce8cf6bc00
3
+ metadata.gz: 41d720310e8d76ac6b90789c61777d15b44ad7bfd9b9bddacd183f8d0604bbf0
4
+ data.tar.gz: a0ba411869567505ef97e20555f9788bb9819b05bbea6b4ffff9b433556be8b1
5
5
  SHA512:
6
- metadata.gz: bb31ddba03fc2d593f2f5cc573a9ceba27c7f92823ee14fc5df36a2480d3afaf9171c1ba066be41d69a145ce6290f218ffc238aa37b32bb5799769c6ff9e2ab4
7
- data.tar.gz: be8dff62d24801ff5a4e4f83a72d5cca05e11d6de0fe6fb4fca96961245d944f4397465af5890d62f8fa57e2ef920651d62b0b2e28361b09b3808e9966fdf2a9
6
+ metadata.gz: fce7eb6a917c18a53697525a85ac4373b8738a9cf310606afd86b7f4abfdbebf26a75675d937595eda260db8d1beddc947c36a85df01d0482e2cecc54ae887bf
7
+ data.tar.gz: 115ccee1dc788a6981610d2ec994ea6cd51bb51425aa56ff0156434114029a27826b74c30fe3ee2297560c694b8e7daa2097dada7eaf7b828dd49bc1ffd4ddd4
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # require "minato_logger"
4
-
5
3
  module MinatoErrorHandler
6
4
  module ErrorHandler
7
5
  extend ActiveSupport::Concern
8
6
 
9
- attr_accessor :default_error_class
10
-
11
7
  included do
12
8
  rescue_from StandardError, with: :handle
13
9
  end
14
10
 
11
+ def default_error_class(klass)
12
+ @default_error_class = klass.to_s.camelize.constantize
13
+ end
14
+
15
15
  private
16
16
 
17
17
  def handle(exception)
@@ -23,7 +23,7 @@ module MinatoErrorHandler
23
23
  def parse_error(error)
24
24
  return error if error.is_a?(MinatoErrorHandler::MinatoError)
25
25
 
26
- error_class = default_error_class || MinatoErrorHandler::MinatoError
26
+ error_class = @default_error_class || MinatoErrorHandler::UnknowError
27
27
 
28
28
  minato_error = error_class.new
29
29
  minato_error.caused_by = error.full_message
@@ -5,28 +5,26 @@ require "json"
5
5
 
6
6
  module MinatoErrorHandler
7
7
  class MinatoError < StandardError
8
- SERVER_ERROR = 500
9
-
10
8
  attr_accessor :details, :caused_by, :request
11
9
 
12
- def code
13
- self.class.name
14
- end
15
-
16
10
  def message
17
- "An unknow error has occurred! See more details in caused_by field."
11
+ raise_method_not_implemented_error __method__
18
12
  end
19
13
 
20
14
  def status_code
21
- SERVER_ERROR
15
+ raise_method_not_implemented_error __method__
22
16
  end
23
17
 
24
- def unique_identfier
25
- @unique_identfier ||= SecureRandom.uuid
18
+ def serializable_methods
19
+ raise_method_not_implemented_error __method__
20
+ end
21
+
22
+ def code
23
+ self.class.name
26
24
  end
27
25
 
28
- def serializable_attributes(methods)
29
- methods
26
+ def unique_identfier
27
+ @unique_identfier ||= SecureRandom.uuid
30
28
  end
31
29
 
32
30
  def to_json(*_args)
@@ -39,14 +37,20 @@ module MinatoErrorHandler
39
37
 
40
38
  protected
41
39
 
42
- def serialized_hash
43
- methods = serializable_attributes(%i[caused_by code details message status_code unique_identfier])
40
+ def default_serializable_methods
41
+ %i[caused_by code details message request status_code unique_identfier]
42
+ end
44
43
 
44
+ def serialized_hash
45
45
  data = {}
46
- methods.each do |method|
46
+ serializable_methods.each do |method|
47
47
  data[method] = send(method)
48
48
  end
49
49
  data
50
50
  end
51
+
52
+ def raise_method_not_implemented_error(method_name)
53
+ raise "You must define \"#{method_name}\" in your concrete class."
54
+ end
51
55
  end
52
56
  end
@@ -2,20 +2,18 @@
2
2
 
3
3
  module MinatoErrorHandler
4
4
  class NetworkError < MinatoErrorHandler::MinatoError
5
- def initialize(details: {}, caused_by: nil, status_code: nil, request_body: {})
6
- @request_body = request_body
7
- super(details: details, caused_by: caused_by, status_code: status_code)
8
- end
9
-
10
- attr_reader :request_body
5
+ attr_accessor :response
11
6
 
12
7
  def message
13
8
  "A network error has occurred!"
14
9
  end
15
10
 
16
- def serializable_attributes(attrs)
17
- attrs << :request_body
18
- attrs
11
+ def status_code
12
+ 503
13
+ end
14
+
15
+ def serializable_methods
16
+ default_serializable_methods.push(:response)
19
17
  end
20
18
  end
21
19
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MinatoErrorHandler
4
+ class UnknowError < MinatoError
5
+ def message
6
+ "An unknow error has occurred! See more details in caused_by field."
7
+ end
8
+
9
+ def status_code
10
+ 500
11
+ end
12
+
13
+ def serializable_methods
14
+ default_serializable_methods
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MinatoErrorHandler
4
- VERSION = "0.1.2-1"
4
+ VERSION = "0.1.2-2"
5
5
  end
@@ -4,4 +4,5 @@ require "minato_error_handler/railtie"
4
4
  require "minato_error_handler/version"
5
5
  require "minato_error_handler/minato_error"
6
6
  require "minato_error_handler/network_error"
7
+ require "minato_error_handler/unknow_error"
7
8
  require "minato_error_handler/error_handler"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minato_error_handler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2.pre.1
4
+ version: 0.1.2.pre.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ferreri
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-29 00:00:00.000000000 Z
11
+ date: 2023-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -46,6 +46,7 @@ files:
46
46
  - lib/minato_error_handler/minato_error.rb
47
47
  - lib/minato_error_handler/network_error.rb
48
48
  - lib/minato_error_handler/railtie.rb
49
+ - lib/minato_error_handler/unknow_error.rb
49
50
  - lib/minato_error_handler/version.rb
50
51
  - minato_error_handler.gemspec
51
52
  - sig/minato_error_handler.rbs