betterdocs 0.10.0 → 0.12.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: 43905ca43e64e65668831fed2e7c0d2eb1e0380347948c1d6f1aa7aa77bd8ea7
4
- data.tar.gz: 6c52dcacf3ca65b2111f5e1da6655af8ab728c20e552ee90ca953e547c490699
3
+ metadata.gz: eaf01d4e2af6e80f36f2cd756ac230d7bb0f7eaa796ed0d65116839d75e74a65
4
+ data.tar.gz: 8582edc5843c2261b50b5d75db2574597ac6404bea1f62e01a98448c999d9e58
5
5
  SHA512:
6
- metadata.gz: 493b9879a9c2bdcb1fd4d8858c59d34cf0a83eece18d15f1c7f005e84e57a127c101945c760cf0362d123b90006ecdcf2445a08cce586bd42cb882f4438d7df6
7
- data.tar.gz: 4de261093b3b6b0cb4541d99e4d572cb239f41ca9091fbb41b9a2fc6df5be4e33d5a499ded80a19ac0f4bb740cb8709297ae145ee01a407c4ed8166c9ccebc47
6
+ metadata.gz: d3587cff52970a661523e4796c6cb38522388ddf64b2a1da9f3b519a512325c2133531c716b654497af64f76ff28c99ed574d61bba0a327d6032fbc79ee8a2d8
7
+ data.tar.gz: 36d4f09a69a6d5ae7fe326948ebed98e83c7528b76602dfa6beba7fbed70870ff6629c24f45587eea93bc0538fbb5bf49f9056c51d62f3502af5aa81635a29fd
data/.tool-versions CHANGED
@@ -1,2 +1,2 @@
1
- ruby 3.1.2
1
+ ruby 3.1.3
2
2
  bundler 2.3.17
data/README.md CHANGED
@@ -22,6 +22,8 @@ This api generator requires that you follow the [representer pattern](http://nic
22
22
 
23
23
  ## Controller
24
24
 
25
+ betterdocs comes with a DSL for the (Rails) controllers - see examples below.
26
+
25
27
  ```ruby
26
28
  class ThingsController < ApplicationController
27
29
  # :nocov: Documentation
@@ -99,6 +101,7 @@ module ThingsRepresenter
99
101
  example 'my_name'
100
102
  end
101
103
 
104
+ # Add a link to the links list in the resulting JSON.
102
105
  link :self do
103
106
  description to <<-end
104
107
  Link to this resource itself
@@ -109,6 +112,12 @@ module ThingsRepresenter
109
112
  end
110
113
  ```
111
114
 
115
+ GENERATING
116
+ ----------
117
+
118
+ `rake doc:api:push` will push the documentation onto a git branch.
119
+ `rake doc:api:swagger` will call Swagger.
120
+
112
121
  RELEASING
113
122
  ---------
114
123
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.10.0
1
+ 0.12.0
data/betterdocs.gemspec CHANGED
@@ -1,21 +1,21 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: betterdocs 0.10.0 ruby lib
2
+ # stub: betterdocs 0.12.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "betterdocs".freeze
6
- s.version = "0.10.0"
6
+ s.version = "0.12.0"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["betterplace Developers".freeze]
11
- s.date = "2022-08-16"
11
+ s.date = "2022-12-09"
12
12
  s.description = "This library provides tools to generate API documention for a web site's REST-ful JSON API.".freeze
13
13
  s.email = "developers@betterplace.org".freeze
14
- s.extra_rdoc_files = ["README.md".freeze, "lib/betterdocs.rb".freeze, "lib/betterdocs/controller_collector.rb".freeze, "lib/betterdocs/dsl.rb".freeze, "lib/betterdocs/dsl/common.rb".freeze, "lib/betterdocs/dsl/controller.rb".freeze, "lib/betterdocs/dsl/controller/action.rb".freeze, "lib/betterdocs/dsl/controller/action/param.rb".freeze, "lib/betterdocs/dsl/controller/action/response.rb".freeze, "lib/betterdocs/dsl/controller/controller.rb".freeze, "lib/betterdocs/dsl/controller/controller_base.rb".freeze, "lib/betterdocs/dsl/json_params.rb".freeze, "lib/betterdocs/dsl/json_params/param.rb".freeze, "lib/betterdocs/dsl/json_type_mapper.rb".freeze, "lib/betterdocs/dsl/naming.rb".freeze, "lib/betterdocs/dsl/representer.rb".freeze, "lib/betterdocs/dsl/result.rb".freeze, "lib/betterdocs/dsl/result/collection_property.rb".freeze, "lib/betterdocs/dsl/result/link.rb".freeze, "lib/betterdocs/dsl/result/property.rb".freeze, "lib/betterdocs/generator/config_shortcuts.rb".freeze, "lib/betterdocs/generator/markdown.rb".freeze, "lib/betterdocs/generator/swagger.rb".freeze, "lib/betterdocs/global.rb".freeze, "lib/betterdocs/json_params_representer.rb".freeze, "lib/betterdocs/json_params_representer_collector.rb".freeze, "lib/betterdocs/json_time_with_zone.rb".freeze, "lib/betterdocs/mix_into_controller.rb".freeze, "lib/betterdocs/railtie.rb".freeze, "lib/betterdocs/rake_tasks.rb".freeze, "lib/betterdocs/representer.rb".freeze, "lib/betterdocs/result_representer.rb".freeze, "lib/betterdocs/result_representer_collector.rb".freeze, "lib/betterdocs/sanitizer.rb".freeze, "lib/betterdocs/section.rb".freeze, "lib/betterdocs/version.rb".freeze]
15
- s.files = [".codeclimate.yml".freeze, ".gitignore".freeze, ".rspec".freeze, ".semaphore/semaphore.yml".freeze, ".tool-versions".freeze, ".vscode/settings.json".freeze, "COPYING".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "betterdocs.gemspec".freeze, "lib/betterdocs.rb".freeze, "lib/betterdocs/controller_collector.rb".freeze, "lib/betterdocs/dsl.rb".freeze, "lib/betterdocs/dsl/common.rb".freeze, "lib/betterdocs/dsl/controller.rb".freeze, "lib/betterdocs/dsl/controller/action.rb".freeze, "lib/betterdocs/dsl/controller/action/param.rb".freeze, "lib/betterdocs/dsl/controller/action/response.rb".freeze, "lib/betterdocs/dsl/controller/controller.rb".freeze, "lib/betterdocs/dsl/controller/controller_base.rb".freeze, "lib/betterdocs/dsl/json_params.rb".freeze, "lib/betterdocs/dsl/json_params/param.rb".freeze, "lib/betterdocs/dsl/json_type_mapper.rb".freeze, "lib/betterdocs/dsl/naming.rb".freeze, "lib/betterdocs/dsl/representer.rb".freeze, "lib/betterdocs/dsl/result.rb".freeze, "lib/betterdocs/dsl/result/collection_property.rb".freeze, "lib/betterdocs/dsl/result/link.rb".freeze, "lib/betterdocs/dsl/result/property.rb".freeze, "lib/betterdocs/generator/config_shortcuts.rb".freeze, "lib/betterdocs/generator/markdown.rb".freeze, "lib/betterdocs/generator/markdown/templates/README.md.erb".freeze, "lib/betterdocs/generator/markdown/templates/section.md.erb".freeze, "lib/betterdocs/generator/swagger.rb".freeze, "lib/betterdocs/generator/swagger_static/index.html".freeze, "lib/betterdocs/global.rb".freeze, "lib/betterdocs/json_params_representer.rb".freeze, "lib/betterdocs/json_params_representer_collector.rb".freeze, "lib/betterdocs/json_time_with_zone.rb".freeze, "lib/betterdocs/mix_into_controller.rb".freeze, "lib/betterdocs/railtie.rb".freeze, "lib/betterdocs/rake_tasks.rb".freeze, "lib/betterdocs/representer.rb".freeze, "lib/betterdocs/result_representer.rb".freeze, "lib/betterdocs/result_representer_collector.rb".freeze, "lib/betterdocs/sanitizer.rb".freeze, "lib/betterdocs/section.rb".freeze, "lib/betterdocs/tasks/doc.rake".freeze, "lib/betterdocs/version.rb".freeze, "spec/assets/app/assets/images/logos/logo.png".freeze, "spec/assets/app/controllers/api/foos_controller.rb".freeze, "spec/assets/app/views/api_v4/documentation/assets/CHANGELOG.md".freeze, "spec/assets/config/betterdocs.yml".freeze, "spec/betterdocs/dsl/controller/action/param_spec.rb".freeze, "spec/betterdocs/dsl/controller/action/response_spec.rb".freeze, "spec/betterdocs/dsl/json_type_mapper_spec.rb".freeze, "spec/betterdocs/dsl/result/collection_property_spec.rb".freeze, "spec/betterdocs/dsl/result/link_spec.rb".freeze, "spec/betterdocs/dsl/result/property_spec.rb".freeze, "spec/betterdocs/generator/markdown_spec.rb".freeze, "spec/betterdocs/global_spec.rb".freeze, "spec/betterdocs/json_params_representer_spec.rb".freeze, "spec/betterdocs/result_representer_spec.rb".freeze, "spec/betterdocs/sanitizer_spec.rb".freeze, "spec/controller_dsl_spec.rb".freeze, "spec/result_representer_dsl_spec.rb".freeze, "spec/spec_helper.rb".freeze]
14
+ s.extra_rdoc_files = ["README.md".freeze, "lib/betterdocs.rb".freeze, "lib/betterdocs/controller_collector.rb".freeze, "lib/betterdocs/dsl.rb".freeze, "lib/betterdocs/dsl/common.rb".freeze, "lib/betterdocs/dsl/controller.rb".freeze, "lib/betterdocs/dsl/controller/action.rb".freeze, "lib/betterdocs/dsl/controller/action/param.rb".freeze, "lib/betterdocs/dsl/controller/action/response.rb".freeze, "lib/betterdocs/dsl/controller/controller.rb".freeze, "lib/betterdocs/dsl/controller/controller_base.rb".freeze, "lib/betterdocs/dsl/json_params.rb".freeze, "lib/betterdocs/dsl/json_params/param.rb".freeze, "lib/betterdocs/dsl/json_type_mapper.rb".freeze, "lib/betterdocs/dsl/naming.rb".freeze, "lib/betterdocs/dsl/representer.rb".freeze, "lib/betterdocs/dsl/result.rb".freeze, "lib/betterdocs/dsl/result/collection_property.rb".freeze, "lib/betterdocs/dsl/result/link.rb".freeze, "lib/betterdocs/dsl/result/property.rb".freeze, "lib/betterdocs/generator/config_shortcuts.rb".freeze, "lib/betterdocs/generator/markdown.rb".freeze, "lib/betterdocs/generator/swagger.rb".freeze, "lib/betterdocs/global.rb".freeze, "lib/betterdocs/json_params_representer.rb".freeze, "lib/betterdocs/json_params_representer_collector.rb".freeze, "lib/betterdocs/json_time_with_zone.rb".freeze, "lib/betterdocs/mix_into_controller.rb".freeze, "lib/betterdocs/railtie.rb".freeze, "lib/betterdocs/rake_tasks.rb".freeze, "lib/betterdocs/representer.rb".freeze, "lib/betterdocs/responding.rb".freeze, "lib/betterdocs/result_representer.rb".freeze, "lib/betterdocs/result_representer_collector.rb".freeze, "lib/betterdocs/sanitizer.rb".freeze, "lib/betterdocs/section.rb".freeze, "lib/betterdocs/version.rb".freeze]
15
+ s.files = [".codeclimate.yml".freeze, ".gitignore".freeze, ".rspec".freeze, ".semaphore/semaphore.yml".freeze, ".tool-versions".freeze, ".vscode/settings.json".freeze, "COPYING".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "betterdocs.gemspec".freeze, "lib/betterdocs.rb".freeze, "lib/betterdocs/controller_collector.rb".freeze, "lib/betterdocs/dsl.rb".freeze, "lib/betterdocs/dsl/common.rb".freeze, "lib/betterdocs/dsl/controller.rb".freeze, "lib/betterdocs/dsl/controller/action.rb".freeze, "lib/betterdocs/dsl/controller/action/param.rb".freeze, "lib/betterdocs/dsl/controller/action/response.rb".freeze, "lib/betterdocs/dsl/controller/controller.rb".freeze, "lib/betterdocs/dsl/controller/controller_base.rb".freeze, "lib/betterdocs/dsl/json_params.rb".freeze, "lib/betterdocs/dsl/json_params/param.rb".freeze, "lib/betterdocs/dsl/json_type_mapper.rb".freeze, "lib/betterdocs/dsl/naming.rb".freeze, "lib/betterdocs/dsl/representer.rb".freeze, "lib/betterdocs/dsl/result.rb".freeze, "lib/betterdocs/dsl/result/collection_property.rb".freeze, "lib/betterdocs/dsl/result/link.rb".freeze, "lib/betterdocs/dsl/result/property.rb".freeze, "lib/betterdocs/generator/config_shortcuts.rb".freeze, "lib/betterdocs/generator/markdown.rb".freeze, "lib/betterdocs/generator/markdown/templates/README.md.erb".freeze, "lib/betterdocs/generator/markdown/templates/section.md.erb".freeze, "lib/betterdocs/generator/swagger.rb".freeze, "lib/betterdocs/generator/swagger_static/index.html".freeze, "lib/betterdocs/global.rb".freeze, "lib/betterdocs/json_params_representer.rb".freeze, "lib/betterdocs/json_params_representer_collector.rb".freeze, "lib/betterdocs/json_time_with_zone.rb".freeze, "lib/betterdocs/mix_into_controller.rb".freeze, "lib/betterdocs/railtie.rb".freeze, "lib/betterdocs/rake_tasks.rb".freeze, "lib/betterdocs/representer.rb".freeze, "lib/betterdocs/responding.rb".freeze, "lib/betterdocs/result_representer.rb".freeze, "lib/betterdocs/result_representer_collector.rb".freeze, "lib/betterdocs/sanitizer.rb".freeze, "lib/betterdocs/section.rb".freeze, "lib/betterdocs/tasks/doc.rake".freeze, "lib/betterdocs/version.rb".freeze, "spec/assets/app/assets/images/logos/logo.png".freeze, "spec/assets/app/controllers/api/foos_controller.rb".freeze, "spec/assets/app/views/api_v4/documentation/assets/CHANGELOG.md".freeze, "spec/assets/config/betterdocs.yml".freeze, "spec/betterdocs/dsl/controller/action/param_spec.rb".freeze, "spec/betterdocs/dsl/controller/action/response_spec.rb".freeze, "spec/betterdocs/dsl/json_type_mapper_spec.rb".freeze, "spec/betterdocs/dsl/result/collection_property_spec.rb".freeze, "spec/betterdocs/dsl/result/link_spec.rb".freeze, "spec/betterdocs/dsl/result/property_spec.rb".freeze, "spec/betterdocs/generator/markdown_spec.rb".freeze, "spec/betterdocs/global_spec.rb".freeze, "spec/betterdocs/json_params_representer_spec.rb".freeze, "spec/betterdocs/result_representer_spec.rb".freeze, "spec/betterdocs/sanitizer_spec.rb".freeze, "spec/controller_dsl_spec.rb".freeze, "spec/result_representer_dsl_spec.rb".freeze, "spec/spec_helper.rb".freeze]
16
16
  s.homepage = "https://github.com/betterplace/betterdocs".freeze
17
17
  s.rdoc_options = ["--title".freeze, "Betterdocs".freeze, "--main".freeze, "README.md".freeze]
18
- s.rubygems_version = "3.3.19".freeze
18
+ s.rubygems_version = "3.3.26".freeze
19
19
  s.summary = "Betterplace API documentation library".freeze
20
20
  s.test_files = ["spec/assets/app/controllers/api/foos_controller.rb".freeze, "spec/betterdocs/dsl/controller/action/param_spec.rb".freeze, "spec/betterdocs/dsl/controller/action/response_spec.rb".freeze, "spec/betterdocs/dsl/json_type_mapper_spec.rb".freeze, "spec/betterdocs/dsl/result/collection_property_spec.rb".freeze, "spec/betterdocs/dsl/result/link_spec.rb".freeze, "spec/betterdocs/dsl/result/property_spec.rb".freeze, "spec/betterdocs/generator/markdown_spec.rb".freeze, "spec/betterdocs/global_spec.rb".freeze, "spec/betterdocs/json_params_representer_spec.rb".freeze, "spec/betterdocs/result_representer_spec.rb".freeze, "spec/betterdocs/sanitizer_spec.rb".freeze, "spec/controller_dsl_spec.rb".freeze, "spec/result_representer_dsl_spec.rb".freeze, "spec/spec_helper.rb".freeze]
21
21
 
@@ -17,8 +17,17 @@ class Betterdocs::Dsl::Controller::Action::Response
17
17
 
18
18
  def data
19
19
  @data ||= instance_eval(&@data_block)
20
+ @data.is_a? Betterdocs::Responding or
21
+ raise Error, "result #{@data.class} is not Betterdocs::Responding"
22
+ hash = @data.to_hash
23
+ if hash.key?(:data) && hash[:data].empty?
24
+ raise Error, "result data for action #{controller}##{action} is empty"
25
+ elsif hash.empty?
26
+ raise Error, "result for action #{controller}##{action} is empty"
27
+ end
28
+ @data
20
29
  rescue => e
21
- error = Error.new("#{e.class}: #{e}")
30
+ error = e.is_a?(Error) ? e : Error.new("#{e.class}: #{e}")
22
31
  error.set_backtrace e.backtrace.grep(/^#{Betterdocs.rails.root}/)
23
32
  raise error
24
33
  end
@@ -44,7 +53,12 @@ class Betterdocs::Dsl::Controller::Action::Response
44
53
  end
45
54
 
46
55
  def to_json(*a)
56
+ data.nil? and raise Error, "result for action #{controller}##{action} was nil"
57
+ unless data.is_a?(Betterdocs::Responding)
58
+ infobar.puts "#{data.class}".red
59
+ infobar.puts "Result of type #{data.class} for action #{controller}##{action} is not hash / Betterdocs::Representer"
60
+ end
47
61
  my_data = data.ask_and_send(:to_hash) || data
48
- my_data.to_json(*a)
62
+ data.to_json(*a)
49
63
  end
50
64
  end
@@ -1,6 +1,8 @@
1
1
  require 'action_controller'
2
+ require 'betterdocs/responding'
2
3
 
3
4
  module Betterdocs::Representer
5
+ include Betterdocs::Responding
4
6
  extend ActiveSupport::Concern
5
7
 
6
8
  def as_json(*)
@@ -9,6 +11,8 @@ module Betterdocs::Representer
9
11
  end.hashify(self)
10
12
  end
11
13
 
14
+ alias to_hash as_json
15
+
12
16
  def to_json(*a)
13
17
  JSON::generate(as_json, *a)
14
18
  end
@@ -0,0 +1,7 @@
1
+ # This module should be included in all objects used in an API response which
2
+ # should implement a #to_hash method.
3
+ module Betterdocs
4
+ module Responding
5
+ implement :to_hash, :submodule
6
+ end
7
+ end
@@ -1,6 +1,6 @@
1
1
  module Betterdocs
2
2
  # Betterdocs version
3
- VERSION = '0.10.0'
3
+ VERSION = '0.12.0'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
data/lib/betterdocs.rb CHANGED
@@ -14,8 +14,10 @@ module Betterdocs
14
14
  end
15
15
 
16
16
  require 'betterdocs/version'
17
+ require 'betterdocs/responding'
17
18
  require 'betterdocs/dsl'
18
19
  require 'betterdocs/sanitizer'
20
+ require 'betterdocs/representer'
19
21
  require 'betterdocs/result_representer'
20
22
  require 'betterdocs/result_representer_collector'
21
23
  require 'betterdocs/controller_collector'
@@ -17,15 +17,18 @@ describe Betterdocs::Dsl::Controller::Action::Response do
17
17
  double(
18
18
  'Result',
19
19
  representer: representer,
20
- to_json: '{ "the": "result" }'
21
- )
20
+ to_hash: { data: %w[ fake-it ] }
21
+ ).extend Betterdocs::Responding
22
22
  end
23
23
 
24
24
  let :response do
25
25
  data = result_data
26
- described_class.new do
26
+ object = described_class.new do
27
27
  data
28
28
  end
29
+ allow(object).to receive(:controller).and_return('TheController')
30
+ allow(object).to receive(:action).and_return('in_action')
31
+ object
29
32
  end
30
33
 
31
34
  let :param_value do
@@ -37,6 +40,24 @@ describe Betterdocs::Dsl::Controller::Action::Response do
37
40
  expect(response.params[:test]).to eq 'foo'
38
41
  end
39
42
 
43
+ it 'complains about missing data in example responses' do
44
+ allow(result_data).to receive(:to_hash).and_return(data: [])
45
+ expect { response.data }.to raise_error(Betterdocs::Dsl::Controller::Action::Response::Error)
46
+ end
47
+
48
+ context 'foo' do
49
+ let :result_data do
50
+ double
51
+ end
52
+
53
+ it "complains about data that isn't Betterdocs::Responding" do
54
+ expect { response.data }.to raise_error(
55
+ Betterdocs::Dsl::Controller::Action::Response::Error,
56
+ /is not Betterdocs::Responding/
57
+ )
58
+ end
59
+ end
60
+
40
61
  it 'has data' do
41
62
  expect(response.data).to eq result_data
42
63
  end
@@ -54,6 +75,6 @@ describe Betterdocs::Dsl::Controller::Action::Response do
54
75
  end
55
76
 
56
77
  it 'can be converted into a JSON document' do
57
- expect(response.to_json).to eq '{ "the": "result" }'
78
+ expect(JSON(response.to_json)).to eq("data" => %w[ fake-it ])
58
79
  end
59
80
  end
@@ -71,9 +71,4 @@ describe Betterdocs::JsonParamsRepresenter do
71
71
  expect(param.required).to eq true
72
72
  end
73
73
  end
74
-
75
- it 'foos' do
76
- puts docs.to_s
77
- skip
78
- end
79
74
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: betterdocs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - betterplace Developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-16 00:00:00.000000000 Z
11
+ date: 2022-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -199,6 +199,7 @@ extra_rdoc_files:
199
199
  - lib/betterdocs/railtie.rb
200
200
  - lib/betterdocs/rake_tasks.rb
201
201
  - lib/betterdocs/representer.rb
202
+ - lib/betterdocs/responding.rb
202
203
  - lib/betterdocs/result_representer.rb
203
204
  - lib/betterdocs/result_representer_collector.rb
204
205
  - lib/betterdocs/sanitizer.rb
@@ -251,6 +252,7 @@ files:
251
252
  - lib/betterdocs/railtie.rb
252
253
  - lib/betterdocs/rake_tasks.rb
253
254
  - lib/betterdocs/representer.rb
255
+ - lib/betterdocs/responding.rb
254
256
  - lib/betterdocs/result_representer.rb
255
257
  - lib/betterdocs/result_representer_collector.rb
256
258
  - lib/betterdocs/sanitizer.rb
@@ -297,7 +299,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
297
299
  - !ruby/object:Gem::Version
298
300
  version: '0'
299
301
  requirements: []
300
- rubygems_version: 3.3.19
302
+ rubygems_version: 3.3.26
301
303
  signing_key:
302
304
  specification_version: 4
303
305
  summary: Betterplace API documentation library