azeroth 0.10.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bcc284d1b166fec28f03e31cd42642ad09a86c85a81718ba401531443b1bbc08
4
- data.tar.gz: 335851aa5d9a160cf387971e904248c2f89041594ccdaec57fa9ab130624558f
3
+ metadata.gz: 72a4e7c837a4053e850b9479d42cfccd2e279ac028f57da2c5d3baed6c6babfa
4
+ data.tar.gz: 84591492fc859555d87b86704a61e68c0b8171e42a8fd77d1f4e502216516fc0
5
5
  SHA512:
6
- metadata.gz: 7ef7afcbd3282d181339fa6f154d1b4dcb6c6bad00f7c4e33e5c0b912b55eecc7de9876e44d2d54e7709a006a7cef487ee6c057dc0645bc0e336ff2b70629fdf
7
- data.tar.gz: d37ba6ffdfe83b55fd51f103fd9ba3f35a3edf5eb0121c5aab424da29ffcce3e7850d52acdb4c41097c773d2f5b56692dc5f0e6c751ebce1651153bde42f2e1d
6
+ metadata.gz: ad6ca16b03b7b99b051bf9bfd25e25d1d522fa89e5b5ff31e495fa1af4fbb193dd269b062d8a87205aa8eeea84bd8a405b84de5d1663d7a1636239d4dd6b973f
7
+ data.tar.gz: 3eec0d1c24bb260dab5fb3ccccf5deedc8ae2eeff7378084fd501c82e740f776f1e3a14e32cee939155f5f833c4c1affdd3ca19f6636681f664be3deca36ed23
data/.circleci/config.yml CHANGED
@@ -22,7 +22,7 @@ workflows:
22
22
  jobs:
23
23
  test:
24
24
  docker:
25
- - image: darthjee/circleci_rails_gems:1.1.0
25
+ - image: darthjee/circleci_rails_gems:1.2.0
26
26
  environment:
27
27
  PROJECT: azeroth
28
28
  steps:
@@ -41,7 +41,7 @@ jobs:
41
41
  command: cc-test-reporter after-build --exit-code $?
42
42
  checks:
43
43
  docker:
44
- - image: darthjee/circleci_rails_gems:1.1.0
44
+ - image: darthjee/circleci_rails_gems:1.2.0
45
45
  environment:
46
46
  PROJECT: azeroth
47
47
  steps:
@@ -66,7 +66,7 @@ jobs:
66
66
  command: check_specs
67
67
  build-and-release:
68
68
  docker:
69
- - image: darthjee/circleci_rails_gems:1.1.0
69
+ - image: darthjee/circleci_rails_gems:1.2.0
70
70
  environment:
71
71
  PROJECT: azeroth
72
72
  steps:
data/Dockerfile CHANGED
@@ -1,6 +1,6 @@
1
1
  FROM darthjee/scripts:0.3.1 as scripts
2
2
 
3
- FROM darthjee/rails_gems:1.1.0 as base
3
+ FROM darthjee/rails_gems:1.2.0 as base
4
4
 
5
5
  COPY --chown=app:app ./ /home/app/app/
6
6
 
data/README.md CHANGED
@@ -11,7 +11,7 @@ Azeroth
11
11
 
12
12
  Yard Documentation
13
13
  -------------------
14
- [https://www.rubydoc.info/gems/azeroth/0.10.1](https://www.rubydoc.info/gems/azeroth/0.10.1)
14
+ [https://www.rubydoc.info/gems/azeroth/1.0.0](https://www.rubydoc.info/gems/azeroth/1.0.0)
15
15
 
16
16
  Azeroth has been designed making the coding of controllers easier
17
17
  as routes in controllers are usually copy, paste and replace of same
@@ -131,6 +131,36 @@ It accepts options
131
131
  end
132
132
  ```
133
133
 
134
+ ```ruby
135
+ class PaginatedDocumentsController < ApplicationController
136
+ include Azeroth::Resourceable
137
+
138
+ resource_for :document, only: 'index', paginated: true
139
+ end
140
+
141
+ 30.times { create(:document) }
142
+
143
+ get '/paginated_documents.json'
144
+
145
+ # returns Array with 20 first documents
146
+ # returns in the headers pagination headers
147
+ # {
148
+ # 'pages' => 2,
149
+ # 'per_page' => 20,
150
+ # 'page' => 1
151
+ # }
152
+
153
+ get '/paginated_documents.json?page=2'
154
+
155
+ # returns Array with 10 next documents
156
+ # returns in the headers pagination headers
157
+ # {
158
+ # 'pages' => 2,
159
+ # 'per_page' => 20,
160
+ # 'page' => 2
161
+ # }
162
+ ```
163
+
134
164
  ## Azeroth::Decorator
135
165
 
136
166
  [Decorators](https://www.rubydoc.info/gems/azeroth/Azeroth/Decorator) are
@@ -172,35 +202,6 @@ defining which and how fields will be exposed
172
202
  end
173
203
  ```
174
204
 
175
- ```ruby
176
- class PaginatedDocumentsController < ApplicationController
177
- include Azeroth::Resourceable
178
-
179
- resource_for :document, only: 'index', paginated: true
180
- end
181
-
182
- 30.times { create(:document) }
183
-
184
- get '/paginated_documents.json'
185
-
186
- # returns Array with 20 first documents
187
- # returns in the headers pagination headers
188
- {
189
- 'pages' => 2,
190
- 'per_page' => 20,
191
- 'page' => 1
192
- }
193
-
194
- get '/paginated_documents.json?page=2'
195
-
196
- # returns Array with 10 next documents
197
- # returns in the headers pagination headers
198
- {
199
- 'pages' => 2,
200
- 'per_page' => 20,
201
- 'page' => 2
202
- }
203
- ```
204
205
  Exposing is done through the class method
205
206
  [expose](https://www.rubydoc.info/gems/azeroth/Azeroth/Decorator#expose-class_method)
206
207
  which accepts several options:
data/azeroth.gemspec CHANGED
@@ -18,20 +18,20 @@ Gem::Specification.new do |gem|
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ['lib']
20
20
 
21
- gem.add_runtime_dependency 'activesupport', '~> 5.2.x'
21
+ gem.add_runtime_dependency 'activesupport', '~> 7.0.x'
22
22
  gem.add_runtime_dependency 'darthjee-active_ext', '>= 1.3.2'
23
23
  gem.add_runtime_dependency 'jace', '>= 0.1.1'
24
- gem.add_runtime_dependency 'sinclair', '>= 1.6.7'
24
+ gem.add_runtime_dependency 'sinclair', '>= 2.0.0'
25
25
 
26
- gem.add_development_dependency 'actionpack', '5.2.8.1'
27
- gem.add_development_dependency 'activerecord', '5.2.8.1'
28
- gem.add_development_dependency 'bundler', '~> 2.3.14'
26
+ gem.add_development_dependency 'actionpack', '7.0.4.3'
27
+ gem.add_development_dependency 'activerecord', '7.0.4.3'
28
+ gem.add_development_dependency 'bundler', '~> 2.4.8'
29
29
  gem.add_development_dependency 'factory_bot', '6.2.1'
30
30
  gem.add_development_dependency 'minitest', '5.16.2'
31
- gem.add_development_dependency 'nokogiri', '1.13.6'
31
+ gem.add_development_dependency 'nokogiri', '1.13.8'
32
32
  gem.add_development_dependency 'pry', '0.14.1'
33
33
  gem.add_development_dependency 'pry-nav', '1.0.0'
34
- gem.add_development_dependency 'rails', '5.2.8.1'
34
+ gem.add_development_dependency 'rails', '7.0.4.3'
35
35
  gem.add_development_dependency 'rails-controller-testing', '1.0.5'
36
36
  gem.add_development_dependency 'rake', '13.0.6'
37
37
  gem.add_development_dependency 'reek', '6.0.3'
@@ -47,6 +47,7 @@ Gem::Specification.new do |gem|
47
47
  gem.add_development_dependency 'rubycritic', '4.7.0'
48
48
  gem.add_development_dependency 'shoulda-matchers', '4.3.0'
49
49
  gem.add_development_dependency 'simplecov', '0.21.2'
50
+ gem.add_development_dependency 'sprockets-rails', '3.4.2'
50
51
  gem.add_development_dependency 'sqlite3', '1.4.2'
51
52
  gem.add_development_dependency 'tzinfo-data', '~> 1.2022.1'
52
53
  gem.add_development_dependency 'yard', '0.9.27'
@@ -25,7 +25,9 @@ module Azeroth
25
25
  # @return [Hash]
26
26
  def as_json
27
27
  attributes_map.inject({}) do |hash, (method, options)|
28
- new_hash = KeyValueExtractor.new(decorator, method, options).as_json
28
+ new_hash = KeyValueExtractor.new(
29
+ decorator: decorator, attribute: method, options: options
30
+ ).as_json
29
31
  hash.merge!(new_hash)
30
32
  end
31
33
  end
@@ -11,18 +11,14 @@ module Azeroth
11
11
  #
12
12
  # A decorator is infered for the value / attribute
13
13
  # or used from the options given
14
- class KeyValueExtractor
14
+ class KeyValueExtractor < Sinclair::Model
15
+ initialize_with(:decorator, :attribute, :options)
15
16
  # @param decorator [Decorator] decorator object
16
17
  # @param attribute [Symbol] attribute to be used on output hash
17
18
  # @param options [Decorator::Options] decoration options
18
19
  # @option options if [Proc,Symbol] conditional to be
19
20
  # checked when exposing field
20
21
  # (see {Decorator::Options#if})
21
- def initialize(decorator, attribute, options)
22
- @decorator = decorator
23
- @attribute = attribute
24
- @options = options
25
- end
26
22
 
27
23
  # Return hash for attribute
28
24
  #
@@ -38,9 +34,8 @@ module Azeroth
38
34
  }
39
35
  end
40
36
 
41
- # private
37
+ private
42
38
 
43
- attr_reader :decorator, :attribute, :options
44
39
  # @method decorator
45
40
  # @api private
46
41
  # @private
@@ -5,13 +5,15 @@ module Azeroth
5
5
  # @author Darthjee
6
6
  #
7
7
  # Class responsible for adding params handling methods to a controller
8
- class ParamsBuilder
9
- # @param model [Model] resource interface
10
- # @param builder [Sinclair] methods builder
11
- def initialize(model, builder)
12
- @model = model
13
- @builder = builder
14
- end
8
+ class ParamsBuilder < Sinclair::Model
9
+ # @!method initialize(model:, builder:)
10
+ # @api private
11
+ #
12
+ # @param model [Model] Resource interface
13
+ # @param builder [Sinclair] Methods builder
14
+ #
15
+ # @return [ParamsBuilder]
16
+ initialize_with(:model, :builder, writter: false)
15
17
 
16
18
  # Append the params methods to be built
17
19
  #
@@ -27,7 +29,8 @@ module Azeroth
27
29
  end
28
30
  end
29
31
 
30
- attr_reader :model, :builder
32
+ private
33
+
31
34
  # @method model
32
35
  # @api private
33
36
  # @private
@@ -9,13 +9,15 @@ module Azeroth
9
9
  # The builder adds 2 methods, one for listing all
10
10
  # entries of a resource, and one for fetching an specific
11
11
  # entry
12
- class ResourceBuilder
13
- # @param model [Model] Resource model interface
14
- # @param builder [Sinclair] method builder
15
- def initialize(model, builder)
16
- @model = model
17
- @builder = builder
18
- end
12
+ class ResourceBuilder < Sinclair::Model
13
+ # @!method initialize(model:, builder:)
14
+ # @api private
15
+ #
16
+ # @param model [Model] Resource model interface
17
+ # @param builder [Sinclair] method builder
18
+ #
19
+ # @return [ResourceBuilder]
20
+ initialize_with(:model, :builder, writter: false)
19
21
 
20
22
  # Append methods to be built to the builder
21
23
  #
@@ -28,9 +30,6 @@ module Azeroth
28
30
  add_method(name, "@#{name} ||= #{plural}.find(#{name}_id)")
29
31
  end
30
32
 
31
- private
32
-
33
- attr_reader :model, :builder
34
33
  # @method model
35
34
  # @api private
36
35
  # @private
@@ -13,12 +13,12 @@ module Azeroth
13
13
  # @see ResourceRouteBuilder
14
14
  # @see RoutesBuilder
15
15
  class Builder
16
- # @param clazz [ActionController::Base] Controller to
16
+ # @param klass [ActionController::Base] Controller to
17
17
  # to be changed
18
18
  # @param model_name [Symbol,String]
19
19
  # @param options [Options]
20
- def initialize(clazz, model_name, options)
21
- @clazz = clazz
20
+ def initialize(klass, model_name, options)
21
+ @klass = klass
22
22
  @options = options
23
23
  @model = Azeroth::Model.new(model_name, options)
24
24
 
@@ -30,8 +30,8 @@ module Azeroth
30
30
 
31
31
  private
32
32
 
33
- attr_reader :clazz, :model, :options
34
- # @method clazz
33
+ attr_reader :klass, :model, :options
34
+ # @method klass
35
35
  # @api private
36
36
  # @private
37
37
  #
@@ -89,36 +89,40 @@ module Azeroth
89
89
  #
90
90
  # @see https://www.rubydoc.info/gems/sinclair Sinclair
91
91
  def builder
92
- @builder ||= Sinclair.new(clazz)
92
+ @builder ||= Sinclair.new(klass)
93
93
  end
94
94
 
95
95
  # Add methods for id and parameters
96
96
  #
97
97
  # @return [Array<Sinclair::MethodDefinition>]
98
98
  def add_params
99
- ParamsBuilder.new(model, builder).append
99
+ ParamsBuilder.new(
100
+ model: model, builder: builder
101
+ ).append
100
102
  end
101
103
 
102
104
  # Add methods for resource fetching
103
105
  #
104
106
  # @return [Array<Sinclair::MethodDefinition>]
105
107
  def add_resource
106
- ResourceBuilder.new(model, builder).append
108
+ ResourceBuilder.new(model: model, builder: builder).append
107
109
  end
108
110
 
109
111
  # Add metohods for each route
110
112
  #
111
113
  # @return [Array<Sinclair::MethodDefinition>]
112
114
  def add_routes
113
- RoutesBuilder.new(model, builder, options).append
115
+ RoutesBuilder.new(
116
+ model: model, builder: builder, options: options
117
+ ).append
114
118
  end
115
119
 
116
120
  # Add helpers to render objects on template
117
121
  #
118
122
  # @return [String]
119
123
  def add_helpers
120
- clazz.public_send(:helper_method, model.name)
121
- clazz.public_send(:helper_method, model.plural)
124
+ klass.public_send(:helper_method, model.name)
125
+ klass.public_send(:helper_method, model.plural)
122
126
  end
123
127
  end
124
128
  end
@@ -5,15 +5,14 @@ module Azeroth
5
5
  # @author Darthjee
6
6
  #
7
7
  # Builder resposible for adding routes methods to the controller
8
- class RoutesBuilder
9
- # @param model [Model] resource interface
10
- # @param builder [Sinclair] methods builder
11
- # @param options [Option]
12
- def initialize(model, builder, options)
13
- @model = model
14
- @builder = builder
15
- @options = options
16
- end
8
+ class RoutesBuilder < Sinclair::Model
9
+ initialize_with(:model, :builder, :options, writter: false)
10
+
11
+ # @method initialize(model:, builder:, options:)
12
+ # @param model [Model] resource interface
13
+ # @param builder [Sinclair] methods builder
14
+ # @param options [Option]
15
+ # @return [RoutesBuilder]
17
16
 
18
17
  # Append the routes methods to be built
19
18
  #
@@ -26,7 +25,6 @@ module Azeroth
26
25
 
27
26
  private
28
27
 
29
- attr_reader :model, :builder, :options
30
28
  # @method model
31
29
  # @api private
32
30
  # @private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Azeroth
4
- VERSION = '0.10.1'
4
+ VERSION = '1.0.0'
5
5
  end
@@ -128,7 +128,9 @@ describe DocumentsWithErrorController do
128
128
 
129
129
  it 'returns updated document json' do
130
130
  patch :update, params: parameters
131
- expect(response.body).to eq(expected_body)
131
+
132
+ expect(JSON.parse(response.body))
133
+ .to eq(JSON.parse(expected_body))
132
134
  end
133
135
 
134
136
  it do
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  Rails.application.configure do
4
+ config.hosts << 'www.example.com'
4
5
  # Settings specified here will take precedence over
5
6
  # those in config/application.rb.
6
7
 
@@ -51,6 +51,4 @@ ActiveRecord::Schema.define do
51
51
  t.string :name, null: false
52
52
  t.string :director, null: false
53
53
  end
54
-
55
- add_foreign_key 'pokemons', 'pokemon_masters'
56
54
  end
@@ -4,7 +4,9 @@ require 'spec_helper'
4
4
 
5
5
  describe Azeroth::Decorator::KeyValueExtractor do
6
6
  subject(:extractor) do
7
- described_class.new(decorator, attribute, options)
7
+ described_class.new(
8
+ decorator: decorator, attribute: attribute, options: options
9
+ )
8
10
  end
9
11
 
10
12
  let(:decorator_class) { Class.new(Azeroth::Decorator) }
@@ -3,7 +3,9 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe Azeroth::ParamsBuilder do
6
- subject(:params_builder) { described_class.new(model, builder) }
6
+ subject(:params_builder) do
7
+ described_class.new(model: model, builder: builder)
8
+ end
7
9
 
8
10
  let(:model) { Azeroth::Model.new(:document, options) }
9
11
  let(:options) { Azeroth::Options.new }
@@ -3,7 +3,9 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe Azeroth::ResourceBuilder do
6
- subject(:resource_builder) { described_class.new(model, builder) }
6
+ subject(:resource_builder) do
7
+ described_class.new(model: model, builder: builder)
8
+ end
7
9
 
8
10
  let(:model) { Azeroth::Model.new(:document, options) }
9
11
  let(:options) { Azeroth::Options.new }
@@ -4,7 +4,9 @@ require 'spec_helper'
4
4
 
5
5
  describe Azeroth::RoutesBuilder do
6
6
  subject(:routes_builder) do
7
- described_class.new(model, builder, options)
7
+ described_class.new(
8
+ model: model, builder: builder, options: options
9
+ )
8
10
  end
9
11
 
10
12
  let(:controller) { controller_class.new }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: azeroth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darthjee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-27 00:00:00.000000000 Z
11
+ date: 2023-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 5.2.x
19
+ version: 7.0.x
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 5.2.x
26
+ version: 7.0.x
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: darthjee-active_ext
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,56 +58,56 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 1.6.7
61
+ version: 2.0.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 1.6.7
68
+ version: 2.0.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: actionpack
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 5.2.8.1
75
+ version: 7.0.4.3
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 5.2.8.1
82
+ version: 7.0.4.3
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: activerecord
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 5.2.8.1
89
+ version: 7.0.4.3
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 5.2.8.1
96
+ version: 7.0.4.3
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: bundler
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 2.3.14
103
+ version: 2.4.8
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 2.3.14
110
+ version: 2.4.8
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: factory_bot
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 1.13.6
145
+ version: 1.13.8
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: 1.13.6
152
+ version: 1.13.8
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: pry
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -184,14 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - '='
186
186
  - !ruby/object:Gem::Version
187
- version: 5.2.8.1
187
+ version: 7.0.4.3
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - '='
193
193
  - !ruby/object:Gem::Version
194
- version: 5.2.8.1
194
+ version: 7.0.4.3
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: rails-controller-testing
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -402,6 +402,20 @@ dependencies:
402
402
  - - '='
403
403
  - !ruby/object:Gem::Version
404
404
  version: 0.21.2
405
+ - !ruby/object:Gem::Dependency
406
+ name: sprockets-rails
407
+ requirement: !ruby/object:Gem::Requirement
408
+ requirements:
409
+ - - '='
410
+ - !ruby/object:Gem::Version
411
+ version: 3.4.2
412
+ type: :development
413
+ prerelease: false
414
+ version_requirements: !ruby/object:Gem::Requirement
415
+ requirements:
416
+ - - '='
417
+ - !ruby/object:Gem::Version
418
+ version: 3.4.2
405
419
  - !ruby/object:Gem::Dependency
406
420
  name: sqlite3
407
421
  requirement: !ruby/object:Gem::Requirement
@@ -679,7 +693,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
679
693
  - !ruby/object:Gem::Version
680
694
  version: '0'
681
695
  requirements: []
682
- rubygems_version: 3.3.20
696
+ rubygems_version: 3.1.2
683
697
  signing_key:
684
698
  specification_version: 4
685
699
  summary: Azeroth