betterdocs 0.8.0 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|