swagger_autogenerate 1.0.2 → 1.0.3
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/CHANGELOG.md +2 -0
- data/lib/swagger_autogenerate/swagger_trace.rb +25 -16
- data/lib/swagger_autogenerate/version.rb +1 -1
- data/lib/swagger_autogenerate.rb +1 -1
- data/swagger_autogenerate-1.0.2.gem +0 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3f7b9b67269b270dff6c7ec738c7b4ef8cafa149494c41e74671b0a193bc9d1
|
4
|
+
data.tar.gz: dadf1b845cb96e70f375a245d606b0b4a487b6a945e8ea2508bb102d9e0fbca3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 261b31e5e7c4d02f72c3a60c0262d7034210685e690d66babc899c006886bcf4887380e8d0e58904eafa433552fc56f7ee4ac0ffe7c58c2654c2c9c216c2a3ac
|
7
|
+
data.tar.gz: 28034a707e1568ecf04a668427b186729ea92a9709e847d4db6a29d59a02fd866fd394ed6f10e3fa26e34b51d2438309fa4047f0acbf6b86a5e36cdb9aad7821
|
data/CHANGELOG.md
CHANGED
@@ -1,31 +1,40 @@
|
|
1
1
|
require_relative 'swagger_public_methods'
|
2
|
+
require_relative 'configuration'
|
2
3
|
|
3
4
|
module SwaggerAutogenerate
|
4
5
|
class SwaggerTrace
|
5
|
-
WITH_CONFIG = true
|
6
|
-
WITH_MULTIPLE_EXAMPLES = true
|
7
|
-
WITH_EXAMPLE_DESCRIPTION = true
|
8
|
-
WITH_RESPONSE_DESCRIPTION = true
|
9
|
-
SWAGGER_ENVIRONMENT_VARIABLE = 'SWAGGER'
|
10
|
-
|
11
6
|
include SwaggerPublicMethods
|
12
7
|
|
13
8
|
def initialize(request, response)
|
9
|
+
@with_config = ::SwaggerAutogenerate.configuration.with_config
|
10
|
+
@with_multiple_examples = ::SwaggerAutogenerate.configuration.with_multiple_examples
|
11
|
+
@with_example_description = ::SwaggerAutogenerate.configuration.with_example_description
|
12
|
+
@with_response_description = ::SwaggerAutogenerate.configuration.with_response_description
|
14
13
|
@request = request
|
15
14
|
@response = response
|
16
15
|
@@paths = {}
|
17
16
|
end
|
18
17
|
|
19
18
|
def call
|
20
|
-
if ENV[
|
19
|
+
if ENV[swagger_environment_variable].present?
|
21
20
|
read_swagger_trace
|
22
21
|
write_swagger_trace
|
23
22
|
end
|
24
23
|
end
|
25
24
|
|
25
|
+
def self.swagger_environment_variable
|
26
|
+
::SwaggerAutogenerate.configuration.swagger_environment_variable
|
27
|
+
end
|
28
|
+
|
29
|
+
def swagger_environment_variable
|
30
|
+
SwaggerTrace.swagger_environment_variable
|
31
|
+
end
|
32
|
+
|
26
33
|
private
|
27
34
|
|
28
|
-
attr_reader :request, :response, :current_path, :yaml_file
|
35
|
+
attr_reader :request, :response, :current_path, :yaml_file, :configuration,
|
36
|
+
:with_config, :with_multiple_examples, :with_example_description,
|
37
|
+
:with_response_description
|
29
38
|
|
30
39
|
# main methods
|
31
40
|
|
@@ -69,7 +78,7 @@ module SwaggerAutogenerate
|
|
69
78
|
|
70
79
|
def create_file
|
71
80
|
File.open(swagger_location, 'w') do |file|
|
72
|
-
data =
|
81
|
+
data = with_config ? swagger_config : {}
|
73
82
|
data['paths'] = paths
|
74
83
|
organize_result(data['paths'])
|
75
84
|
data = data.to_hash
|
@@ -87,7 +96,7 @@ module SwaggerAutogenerate
|
|
87
96
|
|
88
97
|
return create_file if yaml_file.nil? || yaml_file['paths'].nil?
|
89
98
|
|
90
|
-
yaml_file.merge!(swagger_config) if
|
99
|
+
yaml_file.merge!(swagger_config) if with_config
|
91
100
|
|
92
101
|
apply_yaml_file_changes
|
93
102
|
organize_result(yaml_file['paths'])
|
@@ -185,7 +194,7 @@ module SwaggerAutogenerate
|
|
185
194
|
swagger_response = { 'file' => 'file/data' }
|
186
195
|
end
|
187
196
|
|
188
|
-
hash['description'] = response_description if
|
197
|
+
hash['description'] = response_description if with_response_description
|
189
198
|
hash['headers'] = {} # response.headers
|
190
199
|
hash['content'] = content_json_example(swagger_response)
|
191
200
|
|
@@ -315,10 +324,10 @@ module SwaggerAutogenerate
|
|
315
324
|
def swagger_location
|
316
325
|
return @swagger_location if instance_variable_defined?(:@swagger_location)
|
317
326
|
|
318
|
-
if ENV[
|
319
|
-
@swagger_location = Rails.root.join(ENV.fetch(
|
327
|
+
if ENV[swagger_environment_variable].include?('.yaml') || ENV[swagger_environment_variable].include?('.yml')
|
328
|
+
@swagger_location = Rails.root.join(ENV.fetch(swagger_environment_variable, nil).to_s).to_s
|
320
329
|
else
|
321
|
-
directory_path = Rails.root.join(ENV.fetch(
|
330
|
+
directory_path = Rails.root.join(ENV.fetch(swagger_environment_variable, nil).to_s).to_s
|
322
331
|
FileUtils.mkdir_p(directory_path) unless File.directory?(directory_path)
|
323
332
|
@swagger_location = "#{directory_path}/#{tags.first}.yaml"
|
324
333
|
end
|
@@ -344,7 +353,7 @@ module SwaggerAutogenerate
|
|
344
353
|
}
|
345
354
|
}
|
346
355
|
}
|
347
|
-
hash['application/json']['examples']['example-0']['description'] = "payload => #{example_description}" if
|
356
|
+
hash['application/json']['examples']['example-0']['description'] = "payload => #{example_description}" if with_example_description && !example_description.empty?
|
348
357
|
|
349
358
|
hash
|
350
359
|
end
|
@@ -386,7 +395,7 @@ module SwaggerAutogenerate
|
|
386
395
|
unless old_examples.value?(current_example)
|
387
396
|
last_example = json_example_plus_one(old_examples.keys.last)
|
388
397
|
last_example ||= 'example-0'
|
389
|
-
last_example = 'example-0' unless
|
398
|
+
last_example = 'example-0' unless with_multiple_examples
|
390
399
|
yaml_file['paths'][current_path][request.method.downcase]['responses'][response.status.to_s]['content']['application/json']['examples'][last_example] = current_example
|
391
400
|
end
|
392
401
|
|
data/lib/swagger_autogenerate.rb
CHANGED
@@ -5,7 +5,7 @@ module SwaggerAutogenerate
|
|
5
5
|
require_relative 'swagger_autogenerate/swagger_trace.rb'
|
6
6
|
|
7
7
|
included do
|
8
|
-
if defined?(Rails) &&
|
8
|
+
if defined?(Rails) && ENV[SwaggerTrace.swagger_environment_variable].present?
|
9
9
|
def process_action(*args)
|
10
10
|
super
|
11
11
|
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swagger_autogenerate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MohammedBuraiah
|
@@ -31,6 +31,7 @@ files:
|
|
31
31
|
- sig/swagger_autogenerate.rbs
|
32
32
|
- swagger_autogenerate-0.1.0.gem
|
33
33
|
- swagger_autogenerate-0.1.1.gem
|
34
|
+
- swagger_autogenerate-1.0.2.gem
|
34
35
|
- swagger_autogenerate.gemspec
|
35
36
|
homepage: https://github.com/MohammedBuraiah/swagger_autogenerate
|
36
37
|
licenses:
|