rswag-specs 2.13.0 → 2.14.0
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/rswag/specs/request_factory.rb +13 -8
- data/lib/rswag/specs/swagger_formatter.rb +13 -0
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 632bdf59bdc4251188267dec82987bd14466f625e34e54501383a298081c9cdc
|
4
|
+
data.tar.gz: 19f715a56062c2aaa9bd6db80392e154a6f7ebcac70077d2e59c38fe614baf77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02fcf0b9b5f42f837c434badc4275a72fd6789fbe973dbb703dcfaf0237699cb008b8c7ce51e4ba150429717e714a9b741d4788257a6ba09d8b06ef617521f0b
|
7
|
+
data.tar.gz: 79c42771f6131b91ab849c770a6c2ef9461d54737059b4b24c03ca85a20e1c82fd26cf9ea4eb92d03f914ed3126b4e4c0571cea81e69ad89453d63d1441088a2
|
@@ -242,11 +242,13 @@ module Rswag
|
|
242
242
|
content_type = request[:headers]['CONTENT_TYPE']
|
243
243
|
return if content_type.nil?
|
244
244
|
|
245
|
-
if ['application/x-www-form-urlencoded', 'multipart/form-data'].include?(content_type)
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
245
|
+
request[:payload] = if ['application/x-www-form-urlencoded', 'multipart/form-data'].include?(content_type)
|
246
|
+
build_form_payload(parameters, example)
|
247
|
+
elsif content_type == 'application/json'
|
248
|
+
build_json_payload(parameters, example)
|
249
|
+
else
|
250
|
+
build_raw_payload(parameters, example)
|
251
|
+
end
|
250
252
|
end
|
251
253
|
|
252
254
|
def build_form_payload(parameters, example)
|
@@ -260,14 +262,17 @@ module Rswag
|
|
260
262
|
Hash[tuples]
|
261
263
|
end
|
262
264
|
|
263
|
-
def
|
265
|
+
def build_raw_payload(parameters, example)
|
264
266
|
body_param = parameters.select { |p| p[:in] == :body }.first
|
265
|
-
|
266
267
|
return nil unless body_param
|
267
268
|
|
268
269
|
raise(MissingParameterError, body_param[:name]) unless example.respond_to?(body_param[:name])
|
269
270
|
|
270
|
-
example.send(body_param[:name])
|
271
|
+
example.send(body_param[:name])
|
272
|
+
end
|
273
|
+
|
274
|
+
def build_json_payload(parameters, example)
|
275
|
+
build_raw_payload(parameters, example)&.to_json
|
271
276
|
end
|
272
277
|
|
273
278
|
def doc_version(doc)
|
@@ -74,6 +74,11 @@ module Rswag
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
+
enum_param = value.dig(:parameters).find{|p| p[:enum]}
|
78
|
+
if enum_param && enum_param.is_a?(Hash)
|
79
|
+
enum_param[:description] = generate_enum_description(enum_param)
|
80
|
+
end
|
81
|
+
|
77
82
|
value[:parameters].reject! { |p| p[:in] == :body || p[:in] == :formData }
|
78
83
|
end
|
79
84
|
remove_invalid_operation_keys!(value)
|
@@ -211,6 +216,14 @@ module Rswag
|
|
211
216
|
value.delete(:request_examples) if value[:request_examples]
|
212
217
|
value[:parameters].each { |p| p.delete(:getter) } if value[:parameters]
|
213
218
|
end
|
219
|
+
|
220
|
+
def generate_enum_description(param)
|
221
|
+
enum_description = "#{param[:description]}:\n "
|
222
|
+
param[:enum].each do |k,v|
|
223
|
+
enum_description += "* `#{k}` #{v}\n "
|
224
|
+
end
|
225
|
+
enum_description
|
226
|
+
end
|
214
227
|
end
|
215
228
|
end
|
216
229
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rswag-specs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richie Morris
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2024-08-13 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -18,20 +18,20 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
21
|
+
version: '5.2'
|
22
22
|
- - "<"
|
23
23
|
- !ruby/object:Gem::Version
|
24
|
-
version: '
|
24
|
+
version: '8.0'
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
27
|
version_requirements: !ruby/object:Gem::Requirement
|
28
28
|
requirements:
|
29
29
|
- - ">="
|
30
30
|
- !ruby/object:Gem::Version
|
31
|
-
version: '
|
31
|
+
version: '5.2'
|
32
32
|
- - "<"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '8.0'
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: json-schema
|
37
37
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,20 +58,20 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '5.2'
|
62
62
|
- - "<"
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version: '
|
64
|
+
version: '8.0'
|
65
65
|
type: :runtime
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
69
|
- - ">="
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
version: '
|
71
|
+
version: '5.2'
|
72
72
|
- - "<"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '8.0'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: rspec-core
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
148
148
|
- !ruby/object:Gem::Version
|
149
149
|
version: '0'
|
150
150
|
requirements: []
|
151
|
-
rubygems_version: 3.
|
151
|
+
rubygems_version: 3.5.11
|
152
152
|
signing_key:
|
153
153
|
specification_version: 4
|
154
154
|
summary: An OpenAPI-based (formerly called Swagger) DSL for rspec-rails & accompanying
|