rswag-specs 2.13.0 → 2.14.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a4cbdf31d7dbcce5ecc58c58544873479a159a78e54b08717a32c17a246e017a
4
- data.tar.gz: d136dbe25d2ad3abebaa9f25c54788d989ad77e060c7777dbde1a007831701cc
3
+ metadata.gz: 632bdf59bdc4251188267dec82987bd14466f625e34e54501383a298081c9cdc
4
+ data.tar.gz: 19f715a56062c2aaa9bd6db80392e154a6f7ebcac70077d2e59c38fe614baf77
5
5
  SHA512:
6
- metadata.gz: 123ca088b4c0bf69c45c399c61b29af122631111cc22c3e83965521fc36561f076e90f94b6ee53eeea56625a6ee5d432939dbd31494fb4e66f5ceefebd077752
7
- data.tar.gz: 155f8b3dbbc824751ae8e82e1ba25da43253aa40f76aff419473f1f97faa64026ffde966d5a23c7b01c98e577e4f4a183d4f4e9b6b04c585fe054103ce00d76e
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
- request[:payload] = build_form_payload(parameters, example)
247
- else
248
- request[:payload] = build_json_payload(parameters, example)
249
- end
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 build_json_payload(parameters, example)
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]).to_json
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.13.0
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: 2023-11-29 00:00:00.000000000 Z
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: '3.1'
21
+ version: '5.2'
22
22
  - - "<"
23
23
  - !ruby/object:Gem::Version
24
- version: '7.2'
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: '3.1'
31
+ version: '5.2'
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: '7.2'
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: '3.1'
61
+ version: '5.2'
62
62
  - - "<"
63
63
  - !ruby/object:Gem::Version
64
- version: '7.2'
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: '3.1'
71
+ version: '5.2'
72
72
  - - "<"
73
73
  - !ruby/object:Gem::Version
74
- version: '7.2'
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.3.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