betterdocs 0.8.0 → 0.8.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/VERSION +1 -1
- data/betterdocs.gemspec +40 -40
- data/lib/betterdocs/dsl/result/property.rb +2 -0
- data/lib/betterdocs/generator/swagger.rb +20 -15
- data/lib/betterdocs/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7a2bc56272804e559e0b5c236e3bdd40aff7e127b31b34c5591b3c9a233c610d
|
|
4
|
+
data.tar.gz: a51d33e38bb1f75412c3bf2f77956e6974226db537059d049999bd9889e5ea40
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 263a170adbde71f93ec60701e2e8f2b3c017f2051d384a491cf789497ff55ec0718b7c383534f296d3746c24fb93b6029e671897270726adbf703a445761adf2
|
|
7
|
+
data.tar.gz: 75677987041d464d1792e97f7ac65201992cd8c8af89e93ce742970e4410f985dae62d1c0ae9ecc9b964025814aad45b4236bf5a9230f3063d352a1e94273734
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.7.1
|
data/betterdocs.gemspec
CHANGED
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
#
|
|
2
|
-
# stub: betterdocs 0.8.0 ruby lib
|
|
1
|
+
# stub: betterdocs 0.7.1 ruby lib
|
|
3
2
|
|
|
4
3
|
Gem::Specification.new do |s|
|
|
5
|
-
s.name =
|
|
6
|
-
s.version =
|
|
4
|
+
s.name = 'betterdocs'.freeze
|
|
5
|
+
s.version = '0.8.1'
|
|
7
6
|
|
|
8
|
-
s.required_rubygems_version = Gem::Requirement.new(
|
|
9
|
-
s.require_paths = [
|
|
10
|
-
s.authors = [
|
|
11
|
-
s.date =
|
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new('>= 0'.freeze) if s.respond_to? :required_rubygems_version=
|
|
8
|
+
s.require_paths = ['lib'.freeze]
|
|
9
|
+
s.authors = ['betterplace Developers'.freeze]
|
|
10
|
+
s.date = '2021-07-07'
|
|
12
11
|
s.description = "This library provides tools to generate API documention for a web site's REST-ful JSON API.".freeze
|
|
13
|
-
s.email =
|
|
14
|
-
s.extra_rdoc_files = [
|
|
15
|
-
|
|
16
|
-
s.
|
|
17
|
-
|
|
18
|
-
s.
|
|
19
|
-
s.
|
|
20
|
-
s.
|
|
12
|
+
s.email = 'developers@betterplace.org'.freeze
|
|
13
|
+
s.extra_rdoc_files = ['README.md'.freeze, 'lib/betterdocs.rb'.freeze,
|
|
14
|
+
'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,
|
|
16
|
+
'.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]
|
|
17
|
+
s.homepage = 'http://github.com/betterplace/betterdocs'.freeze
|
|
18
|
+
s.rdoc_options = ['--title'.freeze, 'Betterdocs'.freeze, '--main'.freeze, 'README.md'.freeze]
|
|
19
|
+
s.rubygems_version = '3.2.15'.freeze
|
|
20
|
+
s.summary = 'Betterplace API documentation library'.freeze
|
|
21
|
+
s.test_files = ['spec/assets/app/controllers/api/foos_controller.rb'.freeze,
|
|
22
|
+
'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
23
|
|
|
22
|
-
if s.respond_to? :specification_version
|
|
23
|
-
s.specification_version = 4
|
|
24
|
-
end
|
|
24
|
+
s.specification_version = 4 if s.respond_to? :specification_version
|
|
25
25
|
|
|
26
|
-
if s.respond_to? :add_runtime_dependency
|
|
27
|
-
s.add_development_dependency(
|
|
28
|
-
s.add_development_dependency(
|
|
29
|
-
s.add_development_dependency(
|
|
30
|
-
s.add_development_dependency(
|
|
31
|
-
s.add_runtime_dependency(
|
|
32
|
-
s.add_runtime_dependency(
|
|
33
|
-
s.add_runtime_dependency(
|
|
34
|
-
s.add_runtime_dependency(
|
|
35
|
-
s.add_runtime_dependency(
|
|
36
|
-
s.add_runtime_dependency(
|
|
26
|
+
if s.respond_to? :add_runtime_dependency
|
|
27
|
+
s.add_development_dependency('gem_hadar'.freeze, ['~> 1.11.0'])
|
|
28
|
+
s.add_development_dependency('rake'.freeze, ['>= 0'])
|
|
29
|
+
s.add_development_dependency('simplecov'.freeze, ['>= 0'])
|
|
30
|
+
s.add_development_dependency('rspec'.freeze, ['>= 0'])
|
|
31
|
+
s.add_runtime_dependency('tins'.freeze, ['~> 1.3', '>= 1.3.5'])
|
|
32
|
+
s.add_runtime_dependency('rails'.freeze, ['>= 3', '< 7'])
|
|
33
|
+
s.add_runtime_dependency('term-ansicolor'.freeze, ['~> 1.3'])
|
|
34
|
+
s.add_runtime_dependency('complex_config'.freeze, ['~> 0.5'])
|
|
35
|
+
s.add_runtime_dependency('infobar'.freeze, ['>= 0'])
|
|
36
|
+
s.add_runtime_dependency('mize'.freeze, ['>= 0'])
|
|
37
37
|
else
|
|
38
|
-
s.add_dependency(
|
|
39
|
-
s.add_dependency(
|
|
40
|
-
s.add_dependency(
|
|
41
|
-
s.add_dependency(
|
|
42
|
-
s.add_dependency(
|
|
43
|
-
s.add_dependency(
|
|
44
|
-
s.add_dependency(
|
|
45
|
-
s.add_dependency(
|
|
46
|
-
s.add_dependency(
|
|
47
|
-
s.add_dependency(
|
|
38
|
+
s.add_dependency('gem_hadar'.freeze, ['~> 1.11.0'])
|
|
39
|
+
s.add_dependency('rake'.freeze, ['>= 0'])
|
|
40
|
+
s.add_dependency('simplecov'.freeze, ['>= 0'])
|
|
41
|
+
s.add_dependency('rspec'.freeze, ['>= 0'])
|
|
42
|
+
s.add_dependency('tins'.freeze, ['~> 1.3', '>= 1.3.5'])
|
|
43
|
+
s.add_dependency('rails'.freeze, ['>= 3', '< 7'])
|
|
44
|
+
s.add_dependency('term-ansicolor'.freeze, ['~> 1.3'])
|
|
45
|
+
s.add_dependency('complex_config'.freeze, ['~> 0.5'])
|
|
46
|
+
s.add_dependency('infobar'.freeze, ['>= 0'])
|
|
47
|
+
s.add_dependency('mize'.freeze, ['>= 0'])
|
|
48
48
|
end
|
|
49
49
|
end
|
|
@@ -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,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: betterdocs
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.8.
|
|
4
|
+
version: 0.8.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- betterplace Developers
|
|
@@ -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.2.
|
|
300
|
+
rubygems_version: 3.2.17
|
|
301
301
|
signing_key:
|
|
302
302
|
specification_version: 4
|
|
303
303
|
summary: Betterplace API documentation library
|