swagger_docs_generator 0.1.0 → 0.1.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/lib/swagger_docs_generator/configuration/configuration.rb +2 -1
- data/lib/swagger_docs_generator/extractor.rb +1 -1
- data/lib/swagger_docs_generator/generator.rb +5 -8
- data/lib/swagger_docs_generator/info.rb +1 -1
- data/lib/swagger_docs_generator/metadata/controller.rb +6 -5
- data/lib/swagger_docs_generator/parser/action.rb +3 -3
- data/lib/swagger_docs_generator.rb +4 -0
- data/lib/tasks/swagger.rake +6 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88cb5ca367ad15e76eb3c350fd799a9463b14ebd
|
4
|
+
data.tar.gz: 7fe85ae4081c3e680a69c66c36b4b8833c359a07
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 433a1104b08265a7bbd596243523a6dac7bd19ae48f872821f3bd70892fffa547743fa071f1c367464655b87f7effc60dbee2293f3603f456ebcba287e3d326c
|
7
|
+
data.tar.gz: d1dda1c6e3d952e331d09a58dcca9c5750ebf49b2a753892ce4fc7602b5551a6596c66029e1170c6fec3faa73c11387a1cb896978c0170a64d2610072721f918
|
@@ -19,13 +19,14 @@ module SwaggerDocsGenerator
|
|
19
19
|
class Configuration
|
20
20
|
attr_accessor :swagger, :base_path, :schemes, :consumes, :produces,
|
21
21
|
:host, :paths, :definitions, :security_definitions,
|
22
|
-
:security, :tags, :external_docs
|
22
|
+
:security, :tags, :external_docs, :base_controller
|
23
23
|
|
24
24
|
SWAGGER = '2.0'
|
25
25
|
|
26
26
|
# Initalize default value (and requried) for json swagger file
|
27
27
|
def initialize
|
28
28
|
@swagger = SWAGGER
|
29
|
+
@base_controller = ''
|
29
30
|
end
|
30
31
|
end
|
31
32
|
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'json'
|
4
|
-
|
5
3
|
module SwaggerDocsGenerator
|
6
4
|
# # Generate JSON file
|
7
5
|
#
|
@@ -16,19 +14,19 @@ module SwaggerDocsGenerator
|
|
16
14
|
@file = 'swagger.json'
|
17
15
|
@path = File.join(Dir.pwd, '/public')
|
18
16
|
@swagger_file = File.join(@path, @file)
|
17
|
+
@version = File.join(@path, SwaggerDocsGenerator.configure_info.version)
|
18
|
+
create_version_folder
|
19
19
|
end
|
20
20
|
|
21
21
|
# Open or create a swagger.json file
|
22
22
|
def generate_swagger_file
|
23
23
|
delete_file_before
|
24
|
-
create_version_folder
|
25
24
|
File.open(@swagger_file, 'a+') { |file| file.puts agregate_metadata }
|
26
25
|
end
|
27
26
|
|
28
27
|
# Delete files temporary
|
29
|
-
def
|
30
|
-
|
31
|
-
Dir.delete(File.join(@path, version))
|
28
|
+
def delete_temporary_files
|
29
|
+
FileUtils.rm_rf(@version)
|
32
30
|
end
|
33
31
|
|
34
32
|
private
|
@@ -40,8 +38,7 @@ module SwaggerDocsGenerator
|
|
40
38
|
end
|
41
39
|
|
42
40
|
def create_version_folder
|
43
|
-
version
|
44
|
-
FileUtils.mkdir_p(version) unless File.directory?(version)
|
41
|
+
FileUtils.mkdir_p(@version) unless File.directory?(@version)
|
45
42
|
end
|
46
43
|
|
47
44
|
# :reek:UtilityFunction
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'json'
|
4
|
-
|
5
3
|
module SwaggerDocsGenerator
|
6
4
|
# # Metadata generated
|
7
5
|
#
|
@@ -9,11 +7,14 @@ module SwaggerDocsGenerator
|
|
9
7
|
# Abstract class for metadata provide to controlloer in Rails application
|
10
8
|
class MetadataController < Metadata
|
11
9
|
def initialize
|
12
|
-
# Reload all controller before parsing
|
13
|
-
Rails.application.eager_load!
|
14
10
|
@path = File.join(Dir.pwd, 'public',
|
15
11
|
SwaggerDocsGenerator.configure_info.version)
|
16
|
-
|
12
|
+
conf = SwaggerDocsGenerator.configure.base_controller
|
13
|
+
@controllers = if conf.is_a?(String)
|
14
|
+
ApplicationController.subclasses
|
15
|
+
else
|
16
|
+
conf.subclasses
|
17
|
+
end
|
17
18
|
end
|
18
19
|
|
19
20
|
private
|
@@ -27,10 +27,10 @@ module SwaggerDocsGenerator
|
|
27
27
|
old_route = json['paths']
|
28
28
|
|
29
29
|
keys_new = hash.keys[0]
|
30
|
-
|
30
|
+
index = keys_new.to_s
|
31
31
|
|
32
|
-
if
|
33
|
-
old_route[
|
32
|
+
if !old_route.blank? && old_route.keys.include?(index)
|
33
|
+
old_route[index].merge!(hash[keys_new])
|
34
34
|
else
|
35
35
|
old_route.merge!(hash)
|
36
36
|
end
|
data/lib/tasks/swagger.rake
CHANGED
@@ -3,6 +3,11 @@ namespace :swagger do
|
|
3
3
|
desc 'Generate Swagger Documentation files'
|
4
4
|
task docs: :environment do
|
5
5
|
puts 'Create Swagger File in public/swagger.json'
|
6
|
-
SwaggerDocsGenerator::Generator.new
|
6
|
+
swag = SwaggerDocsGenerator::Generator.new
|
7
|
+
# Reload all controller before parsing
|
8
|
+
Rails.application.eager_load!
|
9
|
+
# Generates files
|
10
|
+
swag.generate_swagger_file
|
11
|
+
swag.delete_temporary_files
|
7
12
|
end
|
8
13
|
end
|