grape-swagger 1.2.0 → 1.2.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/.rubocop.yml +28 -0
- data/.travis.yml +4 -5
- data/CHANGELOG.md +7 -0
- data/Gemfile +2 -2
- data/lib/grape-swagger.rb +1 -2
- data/lib/grape-swagger/endpoint.rb +18 -8
- data/lib/grape-swagger/version.rb +1 -1
- data/spec/support/empty_model_parser.rb +1 -2
- data/spec/support/mock_parser.rb +1 -2
- data/spec/swagger_v2/api_swagger_v2_hide_param_spec.rb +1 -1
- data/spec/swagger_v2/security_requirement_spec.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ced0e59624b64b14e517815c13c6761c970da13cfd7e6d5c82493b1bb49c815
|
4
|
+
data.tar.gz: a5891f3a10dc5e3ae96bb1f295dcf1978f0758175160b1681ba5f85f0b7cc206
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61c9297050672b095bf2ab8a6648420b6226fa5ecaa2b1b2df07e99c271dba4f1fe9547a77eae5dc4e1b5d0b29035f823e389957b57149f4fb79cf3187597ee9
|
7
|
+
data.tar.gz: 55f926c09f83bfe6e0ab15caeac329acf6f6d623d9c579b89c872fdd2f11f5ddece4e0a74259f921688bcf8e2255fecd908fce3f2eb4b2b58ed449803d3c2900
|
data/.rubocop.yml
CHANGED
@@ -30,6 +30,9 @@ Layout/SpaceAroundMethodCallOperator:
|
|
30
30
|
Lint/DeprecatedOpenSSLConstant:
|
31
31
|
Enabled: true
|
32
32
|
|
33
|
+
Lint/DuplicateElsifCondition:
|
34
|
+
Enabled: true
|
35
|
+
|
33
36
|
Lint/MixedRegexpCaptureTypes:
|
34
37
|
Enabled: true
|
35
38
|
|
@@ -62,12 +65,29 @@ Naming:
|
|
62
65
|
|
63
66
|
# Style stuff
|
64
67
|
#
|
68
|
+
Style/AccessorGrouping:
|
69
|
+
Enabled: true
|
70
|
+
|
71
|
+
Style/ArrayCoercion:
|
72
|
+
Enabled: true
|
73
|
+
|
74
|
+
Style/BisectedAttrAccessor:
|
75
|
+
Enabled: true
|
76
|
+
|
77
|
+
Style/CaseLikeIf:
|
78
|
+
Enabled: true
|
79
|
+
|
65
80
|
Style/ExponentialNotation:
|
66
81
|
Enabled: true
|
67
82
|
|
83
|
+
Style/HashAsLastArrayItem:
|
84
|
+
Enabled: true
|
68
85
|
Style/HashEachMethods:
|
69
86
|
Enabled: true
|
70
87
|
|
88
|
+
Style/HashLikeCase:
|
89
|
+
Enabled: true
|
90
|
+
|
71
91
|
Style/HashTransformKeys:
|
72
92
|
Enabled: true
|
73
93
|
|
@@ -77,9 +97,15 @@ Style/HashTransformValues:
|
|
77
97
|
Style/RegexpLiteral:
|
78
98
|
Enabled: false
|
79
99
|
|
100
|
+
Style/RedundantAssignment:
|
101
|
+
Enabled: true
|
102
|
+
|
80
103
|
Style/RedundantFetchBlock:
|
81
104
|
Enabled: true
|
82
105
|
|
106
|
+
Style/RedundantFileExtensionInRequire:
|
107
|
+
Enabled: true
|
108
|
+
|
83
109
|
Style/RedundantRegexpCharacterClass:
|
84
110
|
Enabled: true
|
85
111
|
|
@@ -88,3 +114,5 @@ Style/RedundantRegexpEscape:
|
|
88
114
|
|
89
115
|
Style/SlicingWithRange:
|
90
116
|
Enabled: false
|
117
|
+
|
118
|
+
|
data/.travis.yml
CHANGED
@@ -13,9 +13,10 @@ rvm:
|
|
13
13
|
- 2.6.6
|
14
14
|
- 2.7.1
|
15
15
|
env:
|
16
|
-
- GRAPE_VERSION=1.3.
|
17
|
-
- GRAPE_VERSION=1.
|
18
|
-
- GRAPE_VERSION=1.
|
16
|
+
- GRAPE_VERSION=1.3.3
|
17
|
+
- GRAPE_VERSION=1.4.0 MODEL_PARSER=grape-swagger-entity
|
18
|
+
- GRAPE_VERSION=1.4.0 MODEL_PARSER=grape-swagger-representable
|
19
|
+
- GRAPE_VERSION=1.4.0
|
19
20
|
- GRAPE_VERSION=HEAD
|
20
21
|
|
21
22
|
jobs:
|
@@ -33,5 +34,3 @@ jobs:
|
|
33
34
|
- rvm: 2.4.10
|
34
35
|
- rvm: ruby-head
|
35
36
|
- rvm: jruby-head
|
36
|
-
|
37
|
-
- env: GRAPE_VERSION=HEAD
|
data/CHANGELOG.md
CHANGED
@@ -9,6 +9,13 @@
|
|
9
9
|
* Your contribution here.
|
10
10
|
|
11
11
|
|
12
|
+
### 1.2.1 (July 15, 2020)
|
13
|
+
|
14
|
+
#### Fixes
|
15
|
+
|
16
|
+
* [#801](https://github.com/ruby-grape/grape-swagger/pull/801): Fixes behaviour after grape upgrade to 1.4.0 - [@LeFnord](https://github.com/LeFnord).
|
17
|
+
|
18
|
+
|
12
19
|
### 1.2.0 (July 1, 2020)
|
13
20
|
|
14
21
|
#### Features
|
data/Gemfile
CHANGED
@@ -6,7 +6,7 @@ ruby RUBY_VERSION
|
|
6
6
|
|
7
7
|
gemspec
|
8
8
|
|
9
|
-
gem 'grape', case version = ENV['GRAPE_VERSION'] || '>= 1.
|
9
|
+
gem 'grape', case version = ENV['GRAPE_VERSION'] || '>= 1.4.0'
|
10
10
|
when 'HEAD'
|
11
11
|
{ git: 'https://github.com/ruby-grape/grape' }
|
12
12
|
else
|
@@ -27,7 +27,7 @@ group :development, :test do
|
|
27
27
|
gem 'rake'
|
28
28
|
gem 'rdoc'
|
29
29
|
gem 'rspec', '~> 3.9'
|
30
|
-
gem 'rubocop', '~> 0.
|
30
|
+
gem 'rubocop', '~> 0.88', require: false
|
31
31
|
end
|
32
32
|
|
33
33
|
group :test do
|
data/lib/grape-swagger.rb
CHANGED
@@ -107,8 +107,7 @@ module SwaggerRouting
|
|
107
107
|
end
|
108
108
|
|
109
109
|
module SwaggerDocumentationAdder
|
110
|
-
attr_accessor :combined_namespaces, :combined_namespace_identifiers
|
111
|
-
attr_accessor :combined_routes, :combined_namespace_routes
|
110
|
+
attr_accessor :combined_namespaces, :combined_namespace_identifiers, :combined_routes, :combined_namespace_routes
|
112
111
|
|
113
112
|
include SwaggerRouting
|
114
113
|
|
@@ -175,15 +175,18 @@ module Grape
|
|
175
175
|
end
|
176
176
|
|
177
177
|
def params_object(route, options, path)
|
178
|
-
parameters =
|
178
|
+
parameters = build_request_params(route, options).each_with_object([]) do |(param, value), memo|
|
179
|
+
next if hidden_parameter?(value)
|
180
|
+
|
179
181
|
value = { required: false }.merge(value) if value.is_a?(Hash)
|
180
182
|
_, value = default_type([[param, value]]).first if value == ''
|
183
|
+
|
181
184
|
if value.dig(:documentation, :type)
|
182
185
|
expose_params(value[:documentation][:type])
|
183
186
|
elsif value[:type]
|
184
187
|
expose_params(value[:type])
|
185
188
|
end
|
186
|
-
GrapeSwagger::DocMethods::ParseParams.call(param, value, path, route, @definitions)
|
189
|
+
memo << GrapeSwagger::DocMethods::ParseParams.call(param, value, path, route, @definitions)
|
187
190
|
end
|
188
191
|
|
189
192
|
if GrapeSwagger::DocMethods::MoveParams.can_be_moved?(route.request_method, parameters)
|
@@ -253,7 +256,7 @@ module Grape
|
|
253
256
|
|
254
257
|
def tag_object(route, path)
|
255
258
|
version = GrapeSwagger::DocMethods::Version.get(route)
|
256
|
-
version =
|
259
|
+
version = Array(version)
|
257
260
|
prefix = route.prefix.to_s.split('/').reject(&:empty?)
|
258
261
|
Array(
|
259
262
|
path.split('{')[0].split('/').reject(&:empty?).delete_if do |i|
|
@@ -296,16 +299,13 @@ module Grape
|
|
296
299
|
memo['schema'] = { type: 'file' }
|
297
300
|
end
|
298
301
|
|
299
|
-
def
|
300
|
-
declared_params = route.settings[:declared_params] if route.settings[:declared_params].present?
|
302
|
+
def build_request_params(route, settings)
|
301
303
|
required = merge_params(route)
|
302
304
|
required = GrapeSwagger::DocMethods::Headers.parse(route) + required unless route.headers.nil?
|
303
305
|
|
304
306
|
default_type(required)
|
305
307
|
|
306
|
-
request_params =
|
307
|
-
GrapeSwagger::Endpoint::ParamsParser.parse_request_params(required, settings, self)
|
308
|
-
end || {}
|
308
|
+
request_params = GrapeSwagger::Endpoint::ParamsParser.parse_request_params(required, settings, self)
|
309
309
|
|
310
310
|
request_params.empty? ? required : request_params
|
311
311
|
end
|
@@ -363,6 +363,16 @@ module Grape
|
|
363
363
|
options[:token_owner] ? route_hidden.call(send(options[:token_owner].to_sym)) : route_hidden.call
|
364
364
|
end
|
365
365
|
|
366
|
+
def hidden_parameter?(value)
|
367
|
+
return false if value.dig(:required)
|
368
|
+
|
369
|
+
if value.dig(:documentation, :hidden).is_a?(Proc)
|
370
|
+
value.dig(:documentation, :hidden).call
|
371
|
+
else
|
372
|
+
value.dig(:documentation, :hidden)
|
373
|
+
end
|
374
|
+
end
|
375
|
+
|
366
376
|
def success_code_from_entity(route, entity)
|
367
377
|
default_code = GrapeSwagger::DocMethods::StatusCodes.get[route.request_method.downcase.to_sym]
|
368
378
|
if entity.is_a?(Hash)
|
data/spec/support/mock_parser.rb
CHANGED
@@ -19,7 +19,7 @@ describe 'hidden flag enables a single endpoint parameter to be excluded from th
|
|
19
19
|
requires :name, type: String, documentation: { desc: 'name' }
|
20
20
|
optional :favourite_color, type: String, documentation: { desc: 'I should not be anywhere', hidden: true }
|
21
21
|
optional :proc_param, type: String, documentation: { desc: 'I should not be anywhere', hidden: proc { true } }
|
22
|
-
optional :proc_with_token, type: String, documentation: { desc: 'I may be somewhere', hidden: proc {
|
22
|
+
optional :proc_with_token, type: String, documentation: { desc: 'I may be somewhere', hidden: proc { false } }
|
23
23
|
end
|
24
24
|
|
25
25
|
post do
|
@@ -5,7 +5,7 @@ require 'spec_helper'
|
|
5
5
|
describe 'security requirement on endpoint method' do
|
6
6
|
def app
|
7
7
|
Class.new(Grape::API) do
|
8
|
-
desc 'Endpoint with security requirement', security: [oauth_pets: ['read:pets', 'write:pets']]
|
8
|
+
desc 'Endpoint with security requirement', security: [{ oauth_pets: ['read:pets', 'write:pets'] }]
|
9
9
|
get '/with_security' do
|
10
10
|
{ foo: 'bar' }
|
11
11
|
end
|
@@ -37,7 +37,7 @@ describe 'security requirement on endpoint method' do
|
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'defines the security requirement on the endpoint method' do
|
40
|
-
expect(subject['paths']['/with_security']['get']['security']).to eql ['oauth_pets' => ['read:pets', 'write:pets']]
|
40
|
+
expect(subject['paths']['/with_security']['get']['security']).to eql [{ 'oauth_pets' => ['read:pets', 'write:pets'] }]
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'defines an empty security requirement on the endpoint method' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grape-swagger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Vandecasteele
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-07-
|
11
|
+
date: 2020-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: grape
|
@@ -195,7 +195,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
195
195
|
- !ruby/object:Gem::Version
|
196
196
|
version: '0'
|
197
197
|
requirements: []
|
198
|
-
rubygems_version: 3.1.
|
198
|
+
rubygems_version: 3.1.4
|
199
199
|
signing_key:
|
200
200
|
specification_version: 4
|
201
201
|
summary: Add auto generated documentation to your Grape API that can be displayed
|