betterdocs 0.8.0 → 0.9.1
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 +4 -4
- data/.semaphore/semaphore.yml +1 -1
- data/.tool-versions +2 -1
- data/README.md +73 -69
- data/VERSION +1 -1
- data/betterdocs.gemspec +6 -6
- data/lib/betterdocs/dsl/result/property.rb +2 -0
- data/lib/betterdocs/generator/config_shortcuts.rb +1 -1
- data/lib/betterdocs/generator/swagger.rb +20 -15
- data/lib/betterdocs/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0ade3c403e3b64e631aa874f8a041faa0060b271d7140f3e3b8651774ea68531
|
4
|
+
data.tar.gz: 8d0bd97c440253344047b7ee3a8ae27ba6c6d6f81e77b63399e25a69a5dbbee3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c0b80edb3b5fab827daa3630a53facaa5114604bd9e1ee7ed1618c28e7cbb8c7ba29068a148932a0510dc66295902ce0105fc14bfb6d861a0f559398cc4f121f
|
7
|
+
data.tar.gz: 20ec168d448cfec1c6bbed09ed30ef22fd8beeb9ec8c2a281f6da31594e900c755e80c285fd5cfb5669945d6ecf22c34814047c2a3ac4a1c0008128ee3c84da5
|
data/.semaphore/semaphore.yml
CHANGED
data/.tool-versions
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
ruby 3.0.
|
1
|
+
ruby 3.0.4
|
2
|
+
bundler 2.3.8
|
data/README.md
CHANGED
@@ -22,88 +22,92 @@ This api generator requires that you follow the [representer pattern](http://nic
|
|
22
22
|
|
23
23
|
## Controller
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
param :order do
|
35
|
-
description to <<-end
|
36
|
-
Optional parameter to order the list.
|
37
|
-
end
|
38
|
-
required no
|
39
|
-
value 'created_at:ASC'
|
40
|
-
end
|
41
|
-
|
42
|
-
response do
|
43
|
-
generate_fake_result_with_representer
|
44
|
-
end
|
45
|
-
end
|
46
|
-
# :nocov:
|
47
|
-
def index
|
48
|
-
render json: real_result_with_representer
|
49
|
-
end
|
25
|
+
```ruby
|
26
|
+
class ThingsController < ApplicationController
|
27
|
+
# :nocov: Documentation
|
28
|
+
doc :action do
|
29
|
+
section :things_list
|
30
|
+
title 'A List of things ⇄ [Details](things_details.md)'
|
31
|
+
description to <<-end
|
32
|
+
This action shows a list of things. **Markdown** can be used.
|
33
|
+
end
|
50
34
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
title 'Things Details ⇄ [List](things_list.md)'
|
55
|
-
description to <<-end
|
56
|
-
The details of a thing. You must give an id for the thing
|
57
|
-
end
|
58
|
-
|
59
|
-
param :thing_id do
|
60
|
-
description 'The id of the thing you want to see. Required.'
|
61
|
-
required yes # this is the default
|
62
|
-
value 38
|
63
|
-
end
|
64
|
-
|
65
|
-
response do
|
66
|
-
generate_fake_details_response_with_representer
|
67
|
-
end
|
68
|
-
end
|
69
|
-
# :nocov:
|
70
|
-
def show
|
71
|
-
render json: real_result_with_representer
|
35
|
+
param :order do
|
36
|
+
description to <<-end
|
37
|
+
Optional parameter to order the list.
|
72
38
|
end
|
39
|
+
required no
|
40
|
+
value 'created_at:ASC'
|
41
|
+
end
|
42
|
+
|
43
|
+
response do
|
44
|
+
generate_fake_result_with_representer
|
45
|
+
end
|
46
|
+
end
|
47
|
+
# :nocov:
|
48
|
+
def index
|
49
|
+
render json: real_result_with_representer
|
50
|
+
end
|
51
|
+
|
52
|
+
# :nocov: Documentation
|
53
|
+
doc :action do
|
54
|
+
section :things_details
|
55
|
+
title 'Things Details ⇄ [List](things_list.md)'
|
56
|
+
description to <<-end
|
57
|
+
The details of a thing. You must give an id for the thing
|
58
|
+
end
|
59
|
+
|
60
|
+
param :thing_id do
|
61
|
+
description 'The id of the thing you want to see. Required.'
|
62
|
+
required yes # this is the default
|
63
|
+
value 38
|
64
|
+
end
|
65
|
+
|
66
|
+
response do
|
67
|
+
generate_fake_details_response_with_representer
|
73
68
|
end
|
69
|
+
end
|
70
|
+
# :nocov:
|
71
|
+
def show
|
72
|
+
render json: real_result_with_representer
|
73
|
+
end
|
74
|
+
end
|
75
|
+
```
|
74
76
|
|
75
77
|
## Representer
|
76
78
|
|
77
79
|
Betterdocs comes with its own representer class. It is not documented
|
78
80
|
yet but works kind of like [ROAR](https://github.com/apotonick/roar).
|
79
81
|
|
80
|
-
|
81
|
-
|
82
|
-
extend ActiveSupport::Concern
|
83
|
-
include Betterdocs::Representer
|
82
|
+
```ruby
|
83
|
+
module ThingsRepresenter
|
84
84
|
|
85
|
-
|
86
|
-
|
87
|
-
types Integer
|
88
|
-
example '5000'
|
89
|
-
end
|
85
|
+
extend ActiveSupport::Concern
|
86
|
+
include Betterdocs::Representer
|
90
87
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
example 'my_name'
|
97
|
-
end
|
88
|
+
property :microfleem_count, if: -> { has_microfleems? }, as: :number_of_fleems do
|
89
|
+
description 'If we have microfleems, return the count'
|
90
|
+
types Integer
|
91
|
+
example '5000'
|
92
|
+
end
|
98
93
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
94
|
+
property :title, as: :name do
|
95
|
+
description to <<-end
|
96
|
+
Represent the internal field "title" as the name of the thing
|
97
|
+
end
|
98
|
+
types String
|
99
|
+
example 'my_name'
|
100
|
+
end
|
101
|
+
|
102
|
+
link :self do
|
103
|
+
description to <<-end
|
104
|
+
Link to this resource itself
|
105
|
+
(<a href="opinion_details.md">things details</a>)
|
106
106
|
end
|
107
|
+
url { thing_url(id) }
|
108
|
+
end
|
109
|
+
end
|
110
|
+
```
|
107
111
|
|
108
112
|
AUTHORS
|
109
113
|
-------
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.9.1
|
data/betterdocs.gemspec
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: betterdocs 0.
|
2
|
+
# stub: betterdocs 0.9.1 ruby lib
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "betterdocs".freeze
|
6
|
-
s.version = "0.
|
6
|
+
s.version = "0.9.1"
|
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 = "
|
11
|
+
s.date = "2022-07-14"
|
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
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
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]
|
16
16
|
s.homepage = "http://github.com/betterplace/betterdocs".freeze
|
17
17
|
s.rdoc_options = ["--title".freeze, "Betterdocs".freeze, "--main".freeze, "README.md".freeze]
|
18
|
-
s.rubygems_version = "3.
|
18
|
+
s.rubygems_version = "3.3.14".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
|
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
end
|
25
25
|
|
26
26
|
if s.respond_to? :add_runtime_dependency then
|
27
|
-
s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.
|
27
|
+
s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.12.0"])
|
28
28
|
s.add_development_dependency(%q<rake>.freeze, [">= 0"])
|
29
29
|
s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
|
30
30
|
s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
|
@@ -35,7 +35,7 @@ Gem::Specification.new do |s|
|
|
35
35
|
s.add_runtime_dependency(%q<infobar>.freeze, [">= 0"])
|
36
36
|
s.add_runtime_dependency(%q<mize>.freeze, [">= 0"])
|
37
37
|
else
|
38
|
-
s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.
|
38
|
+
s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.12.0"])
|
39
39
|
s.add_dependency(%q<rake>.freeze, [">= 0"])
|
40
40
|
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
41
41
|
s.add_dependency(%q<rspec>.freeze, [">= 0"])
|
@@ -39,7 +39,7 @@ module Betterdocs
|
|
39
39
|
Betterdocs.rails.configuration.action_controller.asset_host = Betterdocs::Global.asset_host
|
40
40
|
options = {
|
41
41
|
host: Betterdocs::Global.api_host,
|
42
|
-
protocol: Betterdocs::Global.api_protocol
|
42
|
+
protocol: Betterdocs::Global.api_protocol
|
43
43
|
}
|
44
44
|
infobar.puts color(40, "Setting default_url_options to #{options.inspect}.")
|
45
45
|
Betterdocs.rails.application.routes.default_url_options = options
|
@@ -58,7 +58,7 @@ module Betterdocs
|
|
58
58
|
sections.values.each do |section|
|
59
59
|
infobar.progress(
|
60
60
|
message: " Section #{section.name.to_s.inspect} %c/%t in %te ETA %e @%E ",
|
61
|
-
force: true
|
61
|
+
force: true
|
62
62
|
)
|
63
63
|
@only =~ section.name or next if @only
|
64
64
|
|
@@ -74,7 +74,7 @@ module Betterdocs
|
|
74
74
|
config.each_swagger_asset do |src, dst|
|
75
75
|
infobar.progress(
|
76
76
|
message: " Asset #{File.basename(src).inspect} %c/%t in %te ETA %e @%E ",
|
77
|
-
force: true
|
77
|
+
force: true
|
78
78
|
)
|
79
79
|
mkdir_p File.dirname(dst)
|
80
80
|
cp Betterdocs.rails.root.join(src), dst
|
@@ -125,9 +125,9 @@ module Betterdocs
|
|
125
125
|
offset: { type: 'integer' },
|
126
126
|
total_pages: { type: 'integer' },
|
127
127
|
current_page: { type: 'integer' },
|
128
|
-
per_page: { type: 'integer' }
|
128
|
+
per_page: { type: 'integer' }
|
129
129
|
},
|
130
|
-
required: %w[total_entries offset current_page per_page total_pages data]
|
130
|
+
required: %w[total_entries offset current_page per_page total_pages data]
|
131
131
|
}
|
132
132
|
end
|
133
133
|
|
@@ -159,9 +159,9 @@ module Betterdocs
|
|
159
159
|
backtrace: { type: 'array', items: { type: 'string' } },
|
160
160
|
message: { type: 'string' },
|
161
161
|
errors: { type: 'object' },
|
162
|
-
links: { type: 'array', items: { type: 'string' } }
|
162
|
+
links: { type: 'array', items: { type: 'string' } }
|
163
163
|
},
|
164
|
-
required: %w[name status status_code reason backtrace message links]
|
164
|
+
required: %w[name status status_code reason backtrace message links]
|
165
165
|
}
|
166
166
|
end
|
167
167
|
|
@@ -198,7 +198,7 @@ module Betterdocs
|
|
198
198
|
def get_request_definition(params)
|
199
199
|
schema = { type: 'object', properties: {}, required: [] }
|
200
200
|
params.each do |param|
|
201
|
-
schema[:properties][param.name] = get_schema(param.types, nil, param.description)
|
201
|
+
schema[:properties][param.name] = get_schema(param.types, nil, param.description, nil)
|
202
202
|
schema[:required].push(param.name) if param.required == true || param.required == 'yes'
|
203
203
|
end
|
204
204
|
schema
|
@@ -237,10 +237,10 @@ module Betterdocs
|
|
237
237
|
description.include?('DEPRECATED')
|
238
238
|
end
|
239
239
|
|
240
|
-
def get_schema(types, sub_cls, description)
|
240
|
+
def get_schema(types, sub_cls, description, optional)
|
241
241
|
type, nullable = get_type(types)
|
242
242
|
deprecated = get_deprecated_from_description(description)
|
243
|
-
res = { description: description, type: type, nullable: nullable, deprecated: deprecated }
|
243
|
+
res = { description: description, type: type, nullable: nullable, deprecated: deprecated, optional: optional }
|
244
244
|
case type
|
245
245
|
when 'array'
|
246
246
|
items = { type: 'string' }
|
@@ -269,9 +269,10 @@ module Betterdocs
|
|
269
269
|
properties: {
|
270
270
|
rel: { type: 'string', enum: [] },
|
271
271
|
href: { type: 'string' },
|
272
|
+
templated: { type: 'boolean' }
|
272
273
|
},
|
273
|
-
required: %w[rel href]
|
274
|
-
}
|
274
|
+
required: %w[rel href]
|
275
|
+
}
|
275
276
|
}
|
276
277
|
enum = definition[:properties][:links][:items][:properties][:rel][:enum]
|
277
278
|
enum.push(value) unless enum.include?(value)
|
@@ -291,7 +292,8 @@ module Betterdocs
|
|
291
292
|
sub_cls = get_dto_name(subs[p.nesting_name])
|
292
293
|
cls = sub_cls || resp_cls
|
293
294
|
definition = initialise_definition(definitions, cls)
|
294
|
-
definition[:properties][p.public_name] =
|
295
|
+
definition[:properties][p.public_name] =
|
296
|
+
get_schema(p.types, get_dto_name(p.sub_representer?), p.description, p.optional)
|
295
297
|
end
|
296
298
|
(response.full?(:links) || []).each do |l|
|
297
299
|
sub_cls = get_dto_name(subs[l.nesting_name])
|
@@ -302,13 +304,16 @@ module Betterdocs
|
|
302
304
|
|
303
305
|
def get_schema_ref(name)
|
304
306
|
{
|
305
|
-
"$ref": "#/components/schemas/#{name}"
|
307
|
+
"$ref": "#/components/schemas/#{name}"
|
306
308
|
}
|
307
309
|
end
|
308
310
|
|
309
311
|
def add_required_to_definitions(definitions)
|
310
312
|
definitions.each do |def_key, d|
|
311
|
-
req = d[:properties].select { |_k, v| v.key?(:nullable) }.keys
|
313
|
+
req = d[:properties].select { |_k, v| v.key?(:nullable) && !v[:optional] }.keys
|
314
|
+
d[:properties].each do |p|
|
315
|
+
p.delete(:optional)
|
316
|
+
end
|
312
317
|
definitions[def_key][:required] = req unless req.empty?
|
313
318
|
end
|
314
319
|
end
|
data/lib/betterdocs/version.rb
CHANGED
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.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- betterplace Developers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gem_hadar
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.12.0
|
20
20
|
type: :development
|
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: 1.
|
26
|
+
version: 1.12.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -297,7 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
297
297
|
- !ruby/object:Gem::Version
|
298
298
|
version: '0'
|
299
299
|
requirements: []
|
300
|
-
rubygems_version: 3.
|
300
|
+
rubygems_version: 3.3.14
|
301
301
|
signing_key:
|
302
302
|
specification_version: 4
|
303
303
|
summary: Betterplace API documentation library
|