nxt_error_registry 0.1.4 → 0.2.5

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: d5e4747e5ca829838f0977c5fc22d6968694db1bd68b0893cd9477962db25e21
4
- data.tar.gz: 00a3e42521ae209cf531dfa34c4247f1659a2af1ee3bcb1a8b216ed356683e13
3
+ metadata.gz: bda52fd0450bbea61e8dd04ae0056754de913a89035d271bd95e1e597c3fd9f5
4
+ data.tar.gz: d0e38001db61d3c2095d0383bd553c8851cf79afafbdd7c68e2c7877c072de2e
5
5
  SHA512:
6
- metadata.gz: 598eb012588cd6d2dc748ed66043aac228d78397712f42a0ea72390e495bf7aebac8fc05ddf5b401c2d172c087bd4aa7f2c518c487181aed67b1298947585369
7
- data.tar.gz: 67f6b433945347d037d4e354347a7d21794f75fdae34d0b59ec7252efa037082c688708316f78b5fc024e218b0c7f5409004c856f8583144bf8c96bb8c24e158
6
+ metadata.gz: b6114f3f6c8f53e0f6c9d47c088bac6b02b9bce405c376bb4d9c3e8c569edaa5781af8509b32bd88c860768f8868ffbd61a21faef19abe5db3a78073722ef6a0
7
+ data.tar.gz: e726218ec04e307db59869b9e839d287fd5a79e9467ba721472f1e6a60ddb8594df7f88dec9f5e58e3c2b7094a65c944fa3063d37accac51fca0a66d2ff0d897
data/.circleci/config.yml CHANGED
@@ -4,7 +4,7 @@ jobs:
4
4
  build:
5
5
  working_directory: /home/circleci/app
6
6
  docker:
7
- - image: circleci/ruby:2.6.2-node
7
+ - image: circleci/ruby:2.7.2-node
8
8
  environment:
9
9
  RACK_ENV: test
10
10
  RAILS_ENV: test
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.5
1
+ 2.7.2
data/CHANGELOG.md ADDED
@@ -0,0 +1,41 @@
1
+ # v0.2.5 2022-01-27
2
+
3
+ ### Updated
4
+
5
+ - Relax dependencies to Railties and ActiveSupport to allow Rails 7.x
6
+
7
+ # v0.2.4 2021-03-26
8
+
9
+ ### Updated
10
+
11
+ - Switched Rails dependency to railties
12
+
13
+ # v0.2.3 2021-01-05
14
+
15
+ ### Updated
16
+
17
+ - Loosen Rails and ActiveSupport version constraint to allow 6.1
18
+
19
+ # v0.2.2 2020-12-28
20
+
21
+ ### Changed
22
+
23
+ - Updated dependencies
24
+
25
+ [Compare v0.2.1...v0.2.2](https://github.com/nxt-insurance/nxt_error_registry/compare/v0.2.1...v0.2.2)
26
+
27
+ # v0.2.1 2020-08-28
28
+
29
+ ### Fixed
30
+
31
+ - Allow legacy codes of format /\A\d{3}\.\d{3}\z/
32
+
33
+ [Compare v0.2.0...v0.2.1](https://github.com/nxt-insurance/nxt_error_registry/compare/v0.2.0...v0.2.1)
34
+
35
+ # v0.2.0 2020-08-25
36
+
37
+ ### Added
38
+
39
+ - Use uuids as codes instead of numeric codes in sequence
40
+
41
+ [Compare v0.1.6...v0.2.0](https://github.com/nxt-insurance/nxt_error_registry/compare/v0.1.6...v0.2.0)
data/Gemfile.lock CHANGED
@@ -1,156 +1,87 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nxt_error_registry (0.1.4)
5
- activesupport (< 6.1)
6
- rails (< 6.1)
4
+ nxt_error_registry (0.2.5)
5
+ activesupport (< 8.0)
6
+ railties (< 8.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- actioncable (6.0.2.1)
12
- actionpack (= 6.0.2.1)
13
- nio4r (~> 2.0)
14
- websocket-driver (>= 0.6.1)
15
- actionmailbox (6.0.2.1)
16
- actionpack (= 6.0.2.1)
17
- activejob (= 6.0.2.1)
18
- activerecord (= 6.0.2.1)
19
- activestorage (= 6.0.2.1)
20
- activesupport (= 6.0.2.1)
21
- mail (>= 2.7.1)
22
- actionmailer (6.0.2.1)
23
- actionpack (= 6.0.2.1)
24
- actionview (= 6.0.2.1)
25
- activejob (= 6.0.2.1)
26
- mail (~> 2.5, >= 2.5.4)
27
- rails-dom-testing (~> 2.0)
28
- actionpack (6.0.2.1)
29
- actionview (= 6.0.2.1)
30
- activesupport (= 6.0.2.1)
31
- rack (~> 2.0, >= 2.0.8)
11
+ actionpack (7.0.1)
12
+ actionview (= 7.0.1)
13
+ activesupport (= 7.0.1)
14
+ rack (~> 2.0, >= 2.2.0)
32
15
  rack-test (>= 0.6.3)
33
16
  rails-dom-testing (~> 2.0)
34
17
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
35
- actiontext (6.0.2.1)
36
- actionpack (= 6.0.2.1)
37
- activerecord (= 6.0.2.1)
38
- activestorage (= 6.0.2.1)
39
- activesupport (= 6.0.2.1)
40
- nokogiri (>= 1.8.5)
41
- actionview (6.0.2.1)
42
- activesupport (= 6.0.2.1)
18
+ actionview (7.0.1)
19
+ activesupport (= 7.0.1)
43
20
  builder (~> 3.1)
44
21
  erubi (~> 1.4)
45
22
  rails-dom-testing (~> 2.0)
46
23
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
47
- activejob (6.0.2.1)
48
- activesupport (= 6.0.2.1)
49
- globalid (>= 0.3.6)
50
- activemodel (6.0.2.1)
51
- activesupport (= 6.0.2.1)
52
- activerecord (6.0.2.1)
53
- activemodel (= 6.0.2.1)
54
- activesupport (= 6.0.2.1)
55
- activestorage (6.0.2.1)
56
- actionpack (= 6.0.2.1)
57
- activejob (= 6.0.2.1)
58
- activerecord (= 6.0.2.1)
59
- marcel (~> 0.3.1)
60
- activesupport (6.0.2.1)
24
+ activesupport (7.0.1)
61
25
  concurrent-ruby (~> 1.0, >= 1.0.2)
62
- i18n (>= 0.7, < 2)
63
- minitest (~> 5.1)
64
- tzinfo (~> 1.1)
65
- zeitwerk (~> 2.2)
26
+ i18n (>= 1.6, < 2)
27
+ minitest (>= 5.1)
28
+ tzinfo (~> 2.0)
66
29
  builder (3.2.4)
67
- coderay (1.1.2)
68
- concurrent-ruby (1.1.6)
30
+ coderay (1.1.3)
31
+ concurrent-ruby (1.1.9)
69
32
  crass (1.0.6)
70
- diff-lcs (1.3)
71
- erubi (1.9.0)
72
- globalid (0.4.2)
73
- activesupport (>= 4.2.0)
74
- i18n (1.8.2)
33
+ diff-lcs (1.5.0)
34
+ erubi (1.10.0)
35
+ i18n (1.9.0)
75
36
  concurrent-ruby (~> 1.0)
76
- loofah (2.4.0)
37
+ loofah (2.13.0)
77
38
  crass (~> 1.0.2)
78
39
  nokogiri (>= 1.5.9)
79
- mail (2.7.1)
80
- mini_mime (>= 0.1.1)
81
- marcel (0.3.3)
82
- mimemagic (~> 0.3.2)
83
- method_source (0.9.2)
84
- mimemagic (0.3.4)
85
- mini_mime (1.0.2)
86
- mini_portile2 (2.4.0)
87
- minitest (5.14.0)
88
- nio4r (2.5.2)
89
- nokogiri (1.10.9)
90
- mini_portile2 (~> 2.4.0)
91
- pry (0.12.2)
92
- coderay (~> 1.1.0)
93
- method_source (~> 0.9.0)
94
- rack (2.2.2)
40
+ method_source (1.0.0)
41
+ mini_portile2 (2.7.1)
42
+ minitest (5.15.0)
43
+ nokogiri (1.13.1)
44
+ mini_portile2 (~> 2.7.0)
45
+ racc (~> 1.4)
46
+ pry (0.14.1)
47
+ coderay (~> 1.1)
48
+ method_source (~> 1.0)
49
+ racc (1.6.0)
50
+ rack (2.2.3)
95
51
  rack-test (1.1.0)
96
52
  rack (>= 1.0, < 3)
97
- rails (6.0.2.1)
98
- actioncable (= 6.0.2.1)
99
- actionmailbox (= 6.0.2.1)
100
- actionmailer (= 6.0.2.1)
101
- actionpack (= 6.0.2.1)
102
- actiontext (= 6.0.2.1)
103
- actionview (= 6.0.2.1)
104
- activejob (= 6.0.2.1)
105
- activemodel (= 6.0.2.1)
106
- activerecord (= 6.0.2.1)
107
- activestorage (= 6.0.2.1)
108
- activesupport (= 6.0.2.1)
109
- bundler (>= 1.3.0)
110
- railties (= 6.0.2.1)
111
- sprockets-rails (>= 2.0.0)
112
53
  rails-dom-testing (2.0.3)
113
54
  activesupport (>= 4.2.0)
114
55
  nokogiri (>= 1.6)
115
- rails-html-sanitizer (1.3.0)
56
+ rails-html-sanitizer (1.4.2)
116
57
  loofah (~> 2.3)
117
- railties (6.0.2.1)
118
- actionpack (= 6.0.2.1)
119
- activesupport (= 6.0.2.1)
58
+ railties (7.0.1)
59
+ actionpack (= 7.0.1)
60
+ activesupport (= 7.0.1)
120
61
  method_source
121
- rake (>= 0.8.7)
122
- thor (>= 0.20.3, < 2.0)
123
- rake (13.0.1)
124
- rspec (3.9.0)
125
- rspec-core (~> 3.9.0)
126
- rspec-expectations (~> 3.9.0)
127
- rspec-mocks (~> 3.9.0)
128
- rspec-core (3.9.0)
129
- rspec-support (~> 3.9.0)
130
- rspec-expectations (3.9.0)
62
+ rake (>= 12.2)
63
+ thor (~> 1.0)
64
+ zeitwerk (~> 2.5)
65
+ rake (13.0.6)
66
+ rspec (3.10.0)
67
+ rspec-core (~> 3.10.0)
68
+ rspec-expectations (~> 3.10.0)
69
+ rspec-mocks (~> 3.10.0)
70
+ rspec-core (3.10.1)
71
+ rspec-support (~> 3.10.0)
72
+ rspec-expectations (3.10.2)
131
73
  diff-lcs (>= 1.2.0, < 2.0)
132
- rspec-support (~> 3.9.0)
133
- rspec-mocks (3.9.0)
74
+ rspec-support (~> 3.10.0)
75
+ rspec-mocks (3.10.2)
134
76
  diff-lcs (>= 1.2.0, < 2.0)
135
- rspec-support (~> 3.9.0)
136
- rspec-support (3.9.0)
137
- rspec_junit_formatter (0.4.1)
77
+ rspec-support (~> 3.10.0)
78
+ rspec-support (3.10.3)
79
+ rspec_junit_formatter (0.5.1)
138
80
  rspec-core (>= 2, < 4, != 2.12.0)
139
- sprockets (4.0.0)
81
+ thor (1.2.1)
82
+ tzinfo (2.0.4)
140
83
  concurrent-ruby (~> 1.0)
141
- rack (> 1, < 3)
142
- sprockets-rails (3.2.1)
143
- actionpack (>= 4.0)
144
- activesupport (>= 4.0)
145
- sprockets (>= 3.0.0)
146
- thor (1.0.1)
147
- thread_safe (0.3.6)
148
- tzinfo (1.2.6)
149
- thread_safe (~> 0.1)
150
- websocket-driver (0.7.1)
151
- websocket-extensions (>= 0.1.0)
152
- websocket-extensions (0.1.4)
153
- zeitwerk (2.2.2)
84
+ zeitwerk (2.5.3)
154
85
 
155
86
  PLATFORMS
156
87
  ruby
@@ -161,7 +92,7 @@ DEPENDENCIES
161
92
  pry
162
93
  rake (~> 13.0)
163
94
  rspec (~> 3.0)
164
- rspec_junit_formatter (~> 0.4.1)
95
+ rspec_junit_formatter (~> 0.5.1)
165
96
 
166
97
  BUNDLED WITH
167
98
  2.1.4
data/README.md CHANGED
@@ -25,9 +25,9 @@ Or install it yourself as:
25
25
  ```ruby
26
26
  class LevelOne
27
27
  extend NxtErrorRegistry
28
- register_error :LevelOneError, type: StandardError, code: '100.100'
28
+ register_error :LevelOneError, type: StandardError, code: '84b67c94-efb4-48e8-a5e9-ed1fa1beb988'
29
29
  # This will set the LevelOne::LevelOneError constant that you can raise anywhere
30
- register_error :LevelTwoError, type: LevelOneError, code: '100.101', capture: true, reraise: false
30
+ register_error :LevelTwoError, type: LevelOneError, code: 'a7fc9a8c-9f83-4a2d-8808-75dbef8e376f', capture: true, reraise: false
31
31
  # You can also pass in additional options when registering your errors. These will be available on you error class
32
32
 
33
33
  def raise_level_one_error
@@ -48,7 +48,7 @@ All arguments are optional and will be set to a placeholder if not provided
48
48
 
49
49
  ```ruby
50
50
  rails g register_error --name NewErrorName --type SomeKindOfError
51
- # => register_error :NewErrorName, type: SomeKindOfError, code: '100.000'
51
+ # => register_error :NewErrorName, type: SomeKindOfError, code: 'fa7afa83-6c68-4186-ada4-a573b6a72bd9'
52
52
  ```
53
53
 
54
54
  ### Or use the rake task instead.
@@ -57,7 +57,7 @@ All arguments are optional and will be set to a placeholder if not provided
57
57
 
58
58
  ```ruby
59
59
  rake nxt_error_registry:generate_code\[ErrorName,ParentType\]
60
- # => register_error :ErrorName, type: ParentType, code: '100.000'
60
+ # => register_error :ErrorName, type: ParentType, code: '5c8152cd-b8b9-4fb0-a5fe-5c11d200affc'
61
61
  ```
62
62
  ## Development
63
63
 
@@ -2,43 +2,28 @@ require 'singleton'
2
2
 
3
3
  module NxtErrorRegistry
4
4
  class CodesHarness
5
+ CodeAlreadyRegistered = Class.new(StandardError)
5
6
  include Singleton
6
7
 
7
8
  def generate_code
8
- puts "WARNING: Codes are not in sequence: #{codes_not_in_sequence}" if codes_not_in_sequence.any?
9
-
10
- last_id = codes_as_ids.last
11
- return '100.000' unless last_id
12
-
13
- next_id = last_id + 1
14
- id_to_code(next_id)
9
+ generate_next_code
10
+ rescue CodeAlreadyRegistered
11
+ retry
15
12
  end
16
13
 
17
- def codes_not_in_sequence
18
- previous_id = nil
19
-
20
- codes_as_ids.inject([]) do |acc, id|
21
- if !previous_id || previous_id + 1 == id
22
- previous_id = id
23
- acc
24
- else
25
- acc << [previous_id, id]
26
- previous_id = id
27
- acc
28
- end
29
- end
30
- end
14
+ def generate_next_code
15
+ new_code = SecureRandom.uuid
16
+ return new_code unless registered_codes.include?(new_code)
31
17
 
32
- def codes_as_ids
33
- registry.codes.map { |code| Integer(code.delete('.')) }.sort
18
+ raise CodeAlreadyRegistered, "#{new_code} already registered"
34
19
  end
35
20
 
36
- def id_to_code(code)
37
- "#{code.to_s[0..2]}.#{code.to_s[3..-1]}"
21
+ def registered_codes
22
+ registry.codes
38
23
  end
39
24
 
40
25
  def registry
41
26
  NxtErrorRegistry::Registry.instance
42
27
  end
43
28
  end
44
- end
29
+ end
@@ -3,7 +3,8 @@ module NxtErrorRegistry
3
3
  CodeAlreadyTakenError = Class.new(StandardError)
4
4
  InvalidCodeFormatError = Class.new(StandardError)
5
5
 
6
- FORMAT = /\A\d{3}\.\d{3}\z/
6
+ LEGACY_FORMAT = /\A\d{3}\.\d{3}\z/
7
+ FORMAT = /\A[a-zA-Z0-9-]{36}|#{LEGACY_FORMAT}\z/
7
8
 
8
9
  def initialize(name, type, code, context)
9
10
  @name = name
@@ -25,11 +26,12 @@ module NxtErrorRegistry
25
26
 
26
27
  def validate_code_format
27
28
  return if code =~ FORMAT
29
+
28
30
  raise InvalidCodeFormatError, "Code #{code} for name #{name} violates format #{FORMAT} in context: #{context}"
29
31
  end
30
32
 
31
33
  def validate_code_uniqueness
32
- duplicates = registry.duplicate_codes
34
+ duplicates = registry.duplicated_codes
33
35
  return if duplicates.empty?
34
36
 
35
37
  raise CodeAlreadyTakenError, "The following codes are duplicated: #{duplicates.keys.join(',')}"
@@ -39,4 +41,4 @@ module NxtErrorRegistry
39
41
  NxtErrorRegistry::Registry.instance
40
42
  end
41
43
  end
42
- end
44
+ end
@@ -32,8 +32,8 @@ module NxtErrorRegistry
32
32
  end
33
33
  end
34
34
 
35
- def duplicate_codes
35
+ def duplicated_codes
36
36
  entries_by_codes.select { |_, v| v.size > 1 }
37
37
  end
38
38
  end
39
- end
39
+ end
@@ -1,3 +1,3 @@
1
1
  module NxtErrorRegistry
2
- VERSION = "0.1.4".freeze
2
+ VERSION = "0.2.5".freeze
3
3
  end
@@ -22,6 +22,10 @@ module NxtErrorRegistry
22
22
  end
23
23
 
24
24
  const_set(name, error_class)
25
+ # Calling `delegate` before `const_set` would rip off the modules from the error class.
26
+ # e.g. `Module1::Module2::MyError` would become `MyError`.
27
+ error_class.delegate :code, to: :class
28
+
25
29
  entry = { code: code, error_class: error_class, type: type, name: name, namespace: self.to_s, opts: opts }
26
30
  error_registry[name.to_s] = entry
27
31
 
@@ -5,11 +5,10 @@ require "nxt_error_registry/version"
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "nxt_error_registry"
7
7
  spec.version = NxtErrorRegistry::VERSION
8
- spec.authors = ["Andreas Robecke", "Nils Sommer", "Raphael Kallensee"]
8
+ spec.authors = ["Andreas Robecke", "Nils Sommer", "Raphael Kallensee", "Akihiko Ito"]
9
9
  spec.email = ["a.robecke@getsafe.de"]
10
10
 
11
- spec.summary = %q{Write a short summary, because RubyGems requires one.}
12
- spec.description = %q{Write a longer description or delete this line.}
11
+ spec.summary = %q{Registry to register errors with unique codes and more.}
13
12
  spec.homepage = "https://github.com/nxt-insurance"
14
13
  spec.license = "MIT"
15
14
 
@@ -20,6 +19,7 @@ Gem::Specification.new do |spec|
20
19
 
21
20
  spec.metadata["homepage_uri"] = spec.homepage
22
21
  spec.metadata["source_code_uri"] = "https://github.com/nxt-insurance/nxt_error_registry"
22
+ spec.metadata["changelog_uri"] = "https://github.com/nxt-insurance/nxt_error_registry/CHANGELOG.md"
23
23
  else
24
24
  raise "RubyGems 2.0 or newer is required to protect against " \
25
25
  "public gem pushes."
@@ -37,8 +37,8 @@ Gem::Specification.new do |spec|
37
37
  spec.add_development_dependency "bundler", "~> 2.0"
38
38
  spec.add_development_dependency "rake", "~> 13.0"
39
39
  spec.add_development_dependency "rspec", "~> 3.0"
40
- spec.add_development_dependency "rspec_junit_formatter", "~> 0.4.1"
40
+ spec.add_development_dependency "rspec_junit_formatter", "~> 0.5.1"
41
41
  spec.add_development_dependency "pry"
42
- spec.add_dependency "activesupport", "< 6.1"
43
- spec.add_dependency "rails", "< 6.1"
42
+ spec.add_dependency 'activesupport', '< 8.0'
43
+ spec.add_dependency "railties", "< 8.0"
44
44
  end
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nxt_error_registry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Robecke
8
8
  - Nils Sommer
9
9
  - Raphael Kallensee
10
+ - Akihiko Ito
10
11
  autorequire:
11
12
  bindir: exe
12
13
  cert_chain: []
13
- date: 2020-03-02 00:00:00.000000000 Z
14
+ date: 2022-01-27 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: bundler
@@ -60,14 +61,14 @@ dependencies:
60
61
  requirements:
61
62
  - - "~>"
62
63
  - !ruby/object:Gem::Version
63
- version: 0.4.1
64
+ version: 0.5.1
64
65
  type: :development
65
66
  prerelease: false
66
67
  version_requirements: !ruby/object:Gem::Requirement
67
68
  requirements:
68
69
  - - "~>"
69
70
  - !ruby/object:Gem::Version
70
- version: 0.4.1
71
+ version: 0.5.1
71
72
  - !ruby/object:Gem::Dependency
72
73
  name: pry
73
74
  requirement: !ruby/object:Gem::Requirement
@@ -88,29 +89,29 @@ dependencies:
88
89
  requirements:
89
90
  - - "<"
90
91
  - !ruby/object:Gem::Version
91
- version: '6.1'
92
+ version: '8.0'
92
93
  type: :runtime
93
94
  prerelease: false
94
95
  version_requirements: !ruby/object:Gem::Requirement
95
96
  requirements:
96
97
  - - "<"
97
98
  - !ruby/object:Gem::Version
98
- version: '6.1'
99
+ version: '8.0'
99
100
  - !ruby/object:Gem::Dependency
100
- name: rails
101
+ name: railties
101
102
  requirement: !ruby/object:Gem::Requirement
102
103
  requirements:
103
104
  - - "<"
104
105
  - !ruby/object:Gem::Version
105
- version: '6.1'
106
+ version: '8.0'
106
107
  type: :runtime
107
108
  prerelease: false
108
109
  version_requirements: !ruby/object:Gem::Requirement
109
110
  requirements:
110
111
  - - "<"
111
112
  - !ruby/object:Gem::Version
112
- version: '6.1'
113
- description: Write a longer description or delete this line.
113
+ version: '8.0'
114
+ description:
114
115
  email:
115
116
  - a.robecke@getsafe.de
116
117
  executables: []
@@ -121,6 +122,7 @@ files:
121
122
  - ".gitignore"
122
123
  - ".rspec"
123
124
  - ".ruby-version"
125
+ - CHANGELOG.md
124
126
  - Gemfile
125
127
  - Gemfile.lock
126
128
  - LICENSE.txt
@@ -144,6 +146,7 @@ metadata:
144
146
  allowed_push_host: https://rubygems.org
145
147
  homepage_uri: https://github.com/nxt-insurance
146
148
  source_code_uri: https://github.com/nxt-insurance/nxt_error_registry
149
+ changelog_uri: https://github.com/nxt-insurance/nxt_error_registry/CHANGELOG.md
147
150
  post_install_message:
148
151
  rdoc_options: []
149
152
  require_paths:
@@ -159,8 +162,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
162
  - !ruby/object:Gem::Version
160
163
  version: '0'
161
164
  requirements: []
162
- rubygems_version: 3.0.3
165
+ rubygems_version: 3.1.4
163
166
  signing_key:
164
167
  specification_version: 4
165
- summary: Write a short summary, because RubyGems requires one.
168
+ summary: Registry to register errors with unique codes and more.
166
169
  test_files: []