rspec-rails-api 0.2.2 → 0.2.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 +5 -5
- data/.rubocop.yml +3 -2
- data/CHANGELOG.md +7 -0
- data/lib/rspec/rails/api/open_api_renderer.rb +19 -4
- data/lib/rspec/rails/api/version.rb +1 -1
- data/rspec-rails-api.gemspec +2 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: '078c84277a76bd17ba55a74621786e39a5fc016c'
|
4
|
+
data.tar.gz: 8d9cb8744200020c3dbefb0936f56c761ac47d59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1831e37f21cde2aed080f9bc9f0e1b77e54a982cd7a75d8f78acdc0fd37159df82efae1d24c2fb2fa0d60566a0f753a5e1d7e03d98a89badb2aff0d8635153a4
|
7
|
+
data.tar.gz: 232482ef059cc827136d4d17b23fec9fe3baa113bf9c718c8573b18f9c6493d6f8cbba6bdb61e4b36651ab401107da450859332230215d97e7daa077a7b50114
|
data/.rubocop.yml
CHANGED
@@ -3,6 +3,7 @@ require:
|
|
3
3
|
- rubocop-performance
|
4
4
|
|
5
5
|
AllCops:
|
6
|
+
TargetRubyVersion: 2.3
|
6
7
|
Exclude:
|
7
8
|
- dummy/**/*
|
8
9
|
- vendor/bundle/**/*
|
@@ -17,11 +18,11 @@ Metrics/LineLength:
|
|
17
18
|
Exclude:
|
18
19
|
- spec/**/*_spec.rb
|
19
20
|
|
20
|
-
Naming/
|
21
|
+
Naming/MethodParameterName:
|
21
22
|
AllowedNames:
|
22
23
|
- of
|
23
24
|
|
24
|
-
Layout/
|
25
|
+
Layout/HashAlignment:
|
25
26
|
EnforcedColonStyle: table
|
26
27
|
EnforcedHashRocketStyle: table
|
27
28
|
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file.
|
|
3
3
|
|
4
4
|
## Not released
|
5
5
|
|
6
|
+
## 0.2.3 - 2019-12-04
|
7
|
+
|
8
|
+
### Improved
|
9
|
+
|
10
|
+
- Generated Swagger file now use the payloads of POST/PATCH/PUT requests.
|
11
|
+
- Minimum Ruby version is now specified: Ruby 2.3.3.
|
12
|
+
|
6
13
|
## 0.2.1/0.2.2 - 2019-11-03
|
7
14
|
|
8
15
|
_Version 0.2.1 was released and yanked by mistake. Version 0.2.2 is the exact
|
@@ -142,7 +142,8 @@ module RSpec
|
|
142
142
|
if path_config[:actions][action_config][:params].keys.count.positive?
|
143
143
|
schema = path_config[:actions][action_config][:params]
|
144
144
|
schema_ref = escape_operation_id("#{action_config}_#{path}")
|
145
|
-
|
145
|
+
examples = process_examples(path_config[:actions][action_config][:statuses])
|
146
|
+
request_body = process_request_body schema: schema, ref: schema_ref, examples: examples
|
146
147
|
end
|
147
148
|
end
|
148
149
|
|
@@ -166,14 +167,15 @@ module RSpec
|
|
166
167
|
end
|
167
168
|
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
168
169
|
|
169
|
-
def process_request_body(schema: nil, ref: nil)
|
170
|
+
def process_request_body(schema: nil, ref: nil, examples: {})
|
170
171
|
Utils.deep_set @api_components, "schemas.#{ref}", schema
|
171
172
|
{
|
172
173
|
# description: '',
|
173
174
|
required: true,
|
174
175
|
content: {
|
175
176
|
'application/json' => {
|
176
|
-
schema:
|
177
|
+
schema: { '$ref' => "#/components/schemas/#{ref}" },
|
178
|
+
examples: examples,
|
177
179
|
},
|
178
180
|
},
|
179
181
|
}
|
@@ -184,7 +186,7 @@ module RSpec
|
|
184
186
|
description: status_config[:description],
|
185
187
|
}
|
186
188
|
|
187
|
-
return response
|
189
|
+
return response if status.to_s == '204' && content # No content
|
188
190
|
|
189
191
|
response[:content] = {
|
190
192
|
'application/json': {
|
@@ -195,6 +197,19 @@ module RSpec
|
|
195
197
|
response
|
196
198
|
end
|
197
199
|
|
200
|
+
def process_examples(statuses)
|
201
|
+
request_examples = {}
|
202
|
+
|
203
|
+
statuses.each do |code, request|
|
204
|
+
request_examples[code] = {
|
205
|
+
summary: "Example for a #{code} code",
|
206
|
+
value: request[:example][:params],
|
207
|
+
}
|
208
|
+
end
|
209
|
+
|
210
|
+
request_examples
|
211
|
+
end
|
212
|
+
|
198
213
|
def path_with_params(string)
|
199
214
|
string.gsub(/(?::(\w*))/) do |e|
|
200
215
|
"{#{e.sub(':', '')}}"
|
data/rspec-rails-api.gemspec
CHANGED
@@ -32,6 +32,8 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
33
33
|
spec.require_paths = ['lib']
|
34
34
|
|
35
|
+
spec.required_ruby_version = '>= 2.3.3'
|
36
|
+
|
35
37
|
spec.add_development_dependency 'activesupport', '>= 5.2'
|
36
38
|
spec.add_development_dependency 'bundler', '~> 1.17'
|
37
39
|
spec.add_development_dependency 'byebug'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-rails-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Manuel Tancoigne
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -170,7 +170,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
170
170
|
requirements:
|
171
171
|
- - ">="
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
173
|
+
version: 2.3.3
|
174
174
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
175
175
|
requirements:
|
176
176
|
- - ">="
|
@@ -178,7 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
178
178
|
version: '0'
|
179
179
|
requirements: []
|
180
180
|
rubyforge_project:
|
181
|
-
rubygems_version: 2.
|
181
|
+
rubygems_version: 2.5.2
|
182
182
|
signing_key:
|
183
183
|
specification_version: 4
|
184
184
|
summary: Tests standard Rails API responses and generate doc
|