swagger_docs_generator 0.2.0 → 0.3.0.pre.18
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/lib/swagger_docs_generator/configuration/configuration.rb +14 -5
- data/lib/swagger_docs_generator/configuration/configuration_info.rb +4 -0
- data/lib/swagger_docs_generator/generator.rb +30 -47
- data/lib/swagger_docs_generator/info.rb +1 -1
- data/lib/swagger_docs_generator/metadata/controller.rb +3 -31
- data/lib/swagger_docs_generator/metadata/definition.rb +19 -10
- data/lib/swagger_docs_generator/metadata/jsons.rb +32 -0
- data/lib/swagger_docs_generator/metadata/metadata.rb +11 -1
- data/lib/swagger_docs_generator/parser/action.rb +15 -7
- data/lib/swagger_docs_generator/parser/actions/parameters/body.rb +31 -0
- data/lib/swagger_docs_generator/parser/actions/parameters/form.rb +20 -0
- data/lib/swagger_docs_generator/parser/actions/parameters/header.rb +27 -0
- data/lib/swagger_docs_generator/parser/actions/parameters/path.rb +27 -0
- data/lib/swagger_docs_generator/parser/actions/parameters/query.rb +28 -0
- data/lib/swagger_docs_generator/parser/actions/parameters.rb +31 -57
- data/lib/swagger_docs_generator/parser/actions/response.rb +3 -59
- data/lib/swagger_docs_generator/parser/actions/schema.rb +4 -0
- data/lib/swagger_docs_generator/parser/controller.rb +7 -7
- data/lib/swagger_docs_generator/parser/definition.rb +9 -7
- data/lib/swagger_docs_generator/parser/model.rb +0 -3
- data/lib/swagger_docs_generator/parser/parser.rb +12 -11
- data/lib/swagger_docs_generator.rb +6 -0
- data/lib/tasks/swagger.rake +6 -5
- data/spec/spec_helper.rb +1 -0
- data/spec/support/examples/parameters.rb +154 -0
- data/spec/swagger_docs_generator/configuration/configuration_customize_spec.rb +6 -6
- data/spec/swagger_docs_generator/configuration/configuration_default_spec.rb +8 -3
- data/spec/swagger_docs_generator/parser/parameters/param_body_spec.rb +62 -0
- data/spec/swagger_docs_generator/parser/parameters/param_form_spec.rb +52 -0
- data/spec/swagger_docs_generator/parser/parameters/param_header_spec.rb +62 -0
- data/spec/swagger_docs_generator/parser/parameters/param_path_spec.rb +62 -0
- data/spec/swagger_docs_generator/parser/parameters/param_query_spec.rb +62 -0
- metadata +18 -9
- data/lib/swagger_docs_generator/metadata/path.rb +0 -24
- data/lib/swagger_docs_generator/metadata/tag.rb +0 -24
- data/spec/swagger_docs_generator/metadata/controller_spec.rb +0 -18
- /data/lib/swagger_docs_generator/{parser/models → models}/active_record.rb +0 -0
- /data/lib/swagger_docs_generator/{parser/models → models}/mongo.rb +0 -0
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe SwaggerDocsGenerator::Actions::Path, type: :parser,
|
6
|
+
name: :params_path do
|
7
|
+
let(:param_name) { nil }
|
8
|
+
let(:param_description) { nil }
|
9
|
+
let(:param_required) { nil }
|
10
|
+
let(:param_type) { nil }
|
11
|
+
let(:param) do
|
12
|
+
pname = param_name
|
13
|
+
pdescription = param_description
|
14
|
+
prequired = param_required
|
15
|
+
ptype = param_type
|
16
|
+
SwaggerDocsGenerator::Actions::Parameter.new do
|
17
|
+
path do
|
18
|
+
name pname
|
19
|
+
description pdescription
|
20
|
+
required prequired
|
21
|
+
type ptype
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'when attribute complete' do
|
27
|
+
let(:param_name) { Faker::Color.color_name }
|
28
|
+
let(:param_description) { Faker::Beer.name }
|
29
|
+
let(:param_required) { Faker::Boolean.boolean }
|
30
|
+
let(:param_type) { Faker::Name.first_name }
|
31
|
+
|
32
|
+
it_behaves_like 'parameters path haves'
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'when attribute is incomplete' do
|
36
|
+
it_behaves_like 'parameters path haves'
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'when name attribute alone' do
|
40
|
+
let(:param_name) { Faker::Color.color_name }
|
41
|
+
|
42
|
+
it_behaves_like 'parameters path haves'
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'when description attribute alone' do
|
46
|
+
let(:param_description) { Faker::Beer.name }
|
47
|
+
|
48
|
+
it_behaves_like 'parameters path haves'
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'when required attribute alone' do
|
52
|
+
let(:param_required) { Faker::Boolean.boolean }
|
53
|
+
|
54
|
+
it_behaves_like 'parameters path haves'
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'when type attribute alone' do
|
58
|
+
let(:param_type) { Faker::Name.first_name }
|
59
|
+
|
60
|
+
it_behaves_like 'parameters path haves'
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe SwaggerDocsGenerator::Actions::Query, type: :parser,
|
6
|
+
name: :params_query do
|
7
|
+
let(:param_name) { nil }
|
8
|
+
let(:param_description) { nil }
|
9
|
+
let(:param_required) { nil }
|
10
|
+
let(:param_type) { nil }
|
11
|
+
let(:param) do
|
12
|
+
pname = param_name
|
13
|
+
pdescription = param_description
|
14
|
+
prequired = param_required
|
15
|
+
ptype = param_type
|
16
|
+
SwaggerDocsGenerator::Actions::Parameter.new do
|
17
|
+
query do
|
18
|
+
name pname
|
19
|
+
description pdescription
|
20
|
+
required prequired
|
21
|
+
type ptype
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'when attribute complete' do
|
27
|
+
let(:param_name) { Faker::Color.color_name }
|
28
|
+
let(:param_description) { Faker::Beer.name }
|
29
|
+
let(:param_required) { Faker::Boolean.boolean }
|
30
|
+
let(:param_type) { Faker::Name.first_name }
|
31
|
+
|
32
|
+
it_behaves_like 'parameters query haves'
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'when attribute is incomplete' do
|
36
|
+
it_behaves_like 'parameters query haves'
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'when name attribute alone' do
|
40
|
+
let(:param_name) { Faker::Color.color_name }
|
41
|
+
|
42
|
+
it_behaves_like 'parameters query haves'
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'when description attribute alone' do
|
46
|
+
let(:param_description) { Faker::Beer.name }
|
47
|
+
|
48
|
+
it_behaves_like 'parameters query haves'
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'when required attribute alone' do
|
52
|
+
let(:param_required) { Faker::Boolean.boolean }
|
53
|
+
|
54
|
+
it_behaves_like 'parameters query haves'
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'when type attribute alone' do
|
58
|
+
let(:param_type) { Faker::Name.first_name }
|
59
|
+
|
60
|
+
it_behaves_like 'parameters query haves'
|
61
|
+
end
|
62
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swagger_docs_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0.pre.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- VAILLANT Jeremy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -253,16 +253,22 @@ files:
|
|
253
253
|
- lib/swagger_docs_generator/metadata/controller.rb
|
254
254
|
- lib/swagger_docs_generator/metadata/definition.rb
|
255
255
|
- lib/swagger_docs_generator/metadata/info.rb
|
256
|
+
- lib/swagger_docs_generator/metadata/jsons.rb
|
256
257
|
- lib/swagger_docs_generator/metadata/metadata.rb
|
257
|
-
- lib/swagger_docs_generator/metadata/path.rb
|
258
|
-
- lib/swagger_docs_generator/metadata/tag.rb
|
259
258
|
- lib/swagger_docs_generator/methods.rb
|
259
|
+
- lib/swagger_docs_generator/models/active_record.rb
|
260
|
+
- lib/swagger_docs_generator/models/mongo.rb
|
260
261
|
- lib/swagger_docs_generator/parser/action.rb
|
261
262
|
- lib/swagger_docs_generator/parser/actions/actions.rb
|
262
263
|
- lib/swagger_docs_generator/parser/actions/consumes.rb
|
263
264
|
- lib/swagger_docs_generator/parser/actions/deprecated.rb
|
264
265
|
- lib/swagger_docs_generator/parser/actions/description.rb
|
265
266
|
- lib/swagger_docs_generator/parser/actions/parameters.rb
|
267
|
+
- lib/swagger_docs_generator/parser/actions/parameters/body.rb
|
268
|
+
- lib/swagger_docs_generator/parser/actions/parameters/form.rb
|
269
|
+
- lib/swagger_docs_generator/parser/actions/parameters/header.rb
|
270
|
+
- lib/swagger_docs_generator/parser/actions/parameters/path.rb
|
271
|
+
- lib/swagger_docs_generator/parser/actions/parameters/query.rb
|
266
272
|
- lib/swagger_docs_generator/parser/actions/produces.rb
|
267
273
|
- lib/swagger_docs_generator/parser/actions/response.rb
|
268
274
|
- lib/swagger_docs_generator/parser/actions/schema.rb
|
@@ -271,8 +277,6 @@ files:
|
|
271
277
|
- lib/swagger_docs_generator/parser/controller.rb
|
272
278
|
- lib/swagger_docs_generator/parser/definition.rb
|
273
279
|
- lib/swagger_docs_generator/parser/model.rb
|
274
|
-
- lib/swagger_docs_generator/parser/models/active_record.rb
|
275
|
-
- lib/swagger_docs_generator/parser/models/mongo.rb
|
276
280
|
- lib/swagger_docs_generator/parser/parser.rb
|
277
281
|
- lib/swagger_docs_generator/railtie.rb
|
278
282
|
- lib/tasks/swagger.rake
|
@@ -280,6 +284,7 @@ files:
|
|
280
284
|
- spec/support/examples/configuration.rb
|
281
285
|
- spec/support/examples/generator.rb
|
282
286
|
- spec/support/examples/metadata.rb
|
287
|
+
- spec/support/examples/parameters.rb
|
283
288
|
- spec/support/schemas/swagger.json
|
284
289
|
- spec/swagger_docs_generator/configuration/configuration_customize_spec.rb
|
285
290
|
- spec/swagger_docs_generator/configuration/configuration_default_spec.rb
|
@@ -287,8 +292,12 @@ files:
|
|
287
292
|
- spec/swagger_docs_generator/gem_spec.rb
|
288
293
|
- spec/swagger_docs_generator/generator_spec.rb
|
289
294
|
- spec/swagger_docs_generator/metadata/configuration_spec.rb
|
290
|
-
- spec/swagger_docs_generator/metadata/controller_spec.rb
|
291
295
|
- spec/swagger_docs_generator/metadata/info_spec.rb
|
296
|
+
- spec/swagger_docs_generator/parser/parameters/param_body_spec.rb
|
297
|
+
- spec/swagger_docs_generator/parser/parameters/param_form_spec.rb
|
298
|
+
- spec/swagger_docs_generator/parser/parameters/param_header_spec.rb
|
299
|
+
- spec/swagger_docs_generator/parser/parameters/param_path_spec.rb
|
300
|
+
- spec/swagger_docs_generator/parser/parameters/param_query_spec.rb
|
292
301
|
homepage: https://github.com/Dev-Crea/swagger-docs-generator
|
293
302
|
licenses:
|
294
303
|
- MIT
|
@@ -304,9 +313,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
304
313
|
version: '0'
|
305
314
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
306
315
|
requirements:
|
307
|
-
- - "
|
316
|
+
- - ">"
|
308
317
|
- !ruby/object:Gem::Version
|
309
|
-
version:
|
318
|
+
version: 1.3.1
|
310
319
|
requirements: []
|
311
320
|
rubyforge_project:
|
312
321
|
rubygems_version: 2.4.5
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module SwaggerDocsGenerator
|
4
|
-
# # Metadata generated
|
5
|
-
#
|
6
|
-
# Generate metadata for block paths in swagger specification
|
7
|
-
#
|
8
|
-
# @see https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#pathsObject
|
9
|
-
class MetadataPath < MetadataController
|
10
|
-
def initialize
|
11
|
-
super
|
12
|
-
end
|
13
|
-
|
14
|
-
# Each controller parsed
|
15
|
-
def construct_swagger_file
|
16
|
-
hash = {}
|
17
|
-
controllers.each do |controller|
|
18
|
-
file = File.join(file_path, "#{controller.controller_name}.json")
|
19
|
-
hash.merge!(JSON.parse(File.read(file))['paths']) if File.exist?(file)
|
20
|
-
end
|
21
|
-
{ paths: hash }
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module SwaggerDocsGenerator
|
4
|
-
# # Metadata generated
|
5
|
-
#
|
6
|
-
# Generate metadata for block tag in swagger specification
|
7
|
-
#
|
8
|
-
# @see https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#tagObject
|
9
|
-
class MetadataTag < MetadataController
|
10
|
-
def initialize
|
11
|
-
super
|
12
|
-
end
|
13
|
-
|
14
|
-
# Create tag
|
15
|
-
def construct_swagger_file
|
16
|
-
array = []
|
17
|
-
controllers.each do |controller|
|
18
|
-
file = File.join(file_path, "#{controller.controller_name}.json")
|
19
|
-
array.push(JSON.parse(File.read(file))['tags']) if File.exist?(file)
|
20
|
-
end
|
21
|
-
{ tags: array }
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe SwaggerDocsGenerator::MetadataController, type: :metadata,
|
6
|
-
broken: true,
|
7
|
-
name: :configuration do
|
8
|
-
let(:metadata) { SwaggerDocsGenerator::MetadataController.new }
|
9
|
-
|
10
|
-
before(:context) do
|
11
|
-
class ApplicationController < ::ApplicationController
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
it { expect(metadata.send(:class_controller)).to be_kind_of Array }
|
16
|
-
it { expect(metadata.send(:array_controller)).to be_kind_of Array }
|
17
|
-
it { expect(metadata.send(:string_controller)).to be_kind_of String }
|
18
|
-
end
|
File without changes
|
File without changes
|