grape-swagger 1.1.0 → 1.4.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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +14 -0
  3. data/.github/workflows/rubocop.yml +26 -0
  4. data/.github/workflows/ruby.yml +32 -0
  5. data/.rubocop.yml +65 -2
  6. data/.rubocop_todo.yml +1 -1
  7. data/CHANGELOG.md +50 -0
  8. data/Gemfile +8 -3
  9. data/README.md +182 -13
  10. data/UPGRADING.md +34 -0
  11. data/grape-swagger.gemspec +4 -4
  12. data/lib/grape-swagger.rb +7 -4
  13. data/lib/grape-swagger/doc_methods.rb +65 -62
  14. data/lib/grape-swagger/doc_methods/build_model_definition.rb +53 -2
  15. data/lib/grape-swagger/doc_methods/data_type.rb +4 -4
  16. data/lib/grape-swagger/doc_methods/format_data.rb +2 -2
  17. data/lib/grape-swagger/doc_methods/operation_id.rb +2 -2
  18. data/lib/grape-swagger/doc_methods/parse_params.rb +20 -4
  19. data/lib/grape-swagger/endpoint.rb +83 -32
  20. data/lib/grape-swagger/errors.rb +2 -0
  21. data/lib/grape-swagger/model_parsers.rb +2 -2
  22. data/lib/grape-swagger/rake/oapi_tasks.rb +2 -0
  23. data/lib/grape-swagger/version.rb +1 -1
  24. data/spec/issues/427_entity_as_string_spec.rb +1 -1
  25. data/spec/issues/430_entity_definitions_spec.rb +7 -5
  26. data/spec/issues/537_enum_values_spec.rb +1 -0
  27. data/spec/issues/776_multiple_presents_spec.rb +59 -0
  28. data/spec/issues/809_utf8_routes_spec.rb +55 -0
  29. data/spec/lib/data_type_spec.rb +12 -0
  30. data/spec/lib/format_data_spec.rb +24 -0
  31. data/spec/lib/move_params_spec.rb +2 -2
  32. data/spec/spec_helper.rb +1 -1
  33. data/spec/support/empty_model_parser.rb +3 -2
  34. data/spec/support/mock_parser.rb +1 -2
  35. data/spec/support/model_parsers/entity_parser.rb +8 -8
  36. data/spec/support/model_parsers/mock_parser.rb +24 -8
  37. data/spec/support/model_parsers/representable_parser.rb +8 -8
  38. data/spec/support/namespace_tags.rb +3 -0
  39. data/spec/swagger_v2/api_swagger_v2_hide_param_spec.rb +1 -1
  40. data/spec/swagger_v2/api_swagger_v2_mounted_spec.rb +1 -0
  41. data/spec/swagger_v2/api_swagger_v2_param_type_body_spec.rb +2 -2
  42. data/spec/swagger_v2/api_swagger_v2_response_with_headers_spec.rb +4 -2
  43. data/spec/swagger_v2/api_swagger_v2_response_with_models_spec.rb +53 -0
  44. data/spec/swagger_v2/api_swagger_v2_spec.rb +1 -0
  45. data/spec/swagger_v2/boolean_params_spec.rb +1 -0
  46. data/spec/swagger_v2/float_api_spec.rb +1 -0
  47. data/spec/swagger_v2/inheritance_and_discriminator_spec.rb +57 -0
  48. data/spec/swagger_v2/namespace_tags_prefix_spec.rb +1 -0
  49. data/spec/swagger_v2/param_multi_type_spec.rb +2 -0
  50. data/spec/swagger_v2/param_type_spec.rb +3 -0
  51. data/spec/swagger_v2/param_values_spec.rb +6 -0
  52. data/spec/swagger_v2/{params_array_collection_fromat_spec.rb → params_array_collection_format_spec.rb} +0 -0
  53. data/spec/swagger_v2/params_example_spec.rb +40 -0
  54. data/spec/swagger_v2/reference_entity_spec.rb +74 -29
  55. data/spec/swagger_v2/security_requirement_spec.rb +2 -2
  56. data/spec/swagger_v2/simple_mounted_api_spec.rb +3 -0
  57. metadata +27 -13
  58. data/.travis.yml +0 -35
@@ -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
@@ -4,11 +4,14 @@ require 'spec_helper'
4
4
 
5
5
  describe 'a simple mounted api' do
6
6
  before :all do
7
+ # rubocop:disable Lint/EmptyClass
7
8
  class CustomType; end
9
+ # rubocop:enable Lint/EmptyClass
8
10
 
9
11
  class SimpleMountedApi < Grape::API
10
12
  desc 'Document root'
11
13
  get do
14
+ { message: 'hi' }
12
15
  end
13
16
 
14
17
  desc 'This gets something.',
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-swagger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
+ - LeFnord
7
8
  - Tim Vandecasteele
8
- autorequire:
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2020-04-20 00:00:00.000000000 Z
12
+ date: 2021-03-19 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: grape
@@ -16,28 +17,31 @@ dependencies:
16
17
  requirements:
17
18
  - - "~>"
18
19
  - !ruby/object:Gem::Version
19
- version: 1.3.0
20
+ version: '1.3'
20
21
  type: :runtime
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
25
  - - "~>"
25
26
  - !ruby/object:Gem::Version
26
- version: 1.3.0
27
- description:
27
+ version: '1.3'
28
+ description:
28
29
  email:
30
+ - pscholz.le@gmail.com
29
31
  - tim.vandecasteele@gmail.com
30
32
  executables: []
31
33
  extensions: []
32
34
  extra_rdoc_files: []
33
35
  files:
34
36
  - ".coveralls.yml"
37
+ - ".github/dependabot.yml"
38
+ - ".github/workflows/rubocop.yml"
39
+ - ".github/workflows/ruby.yml"
35
40
  - ".gitignore"
36
41
  - ".rspec"
37
42
  - ".rubocop.yml"
38
43
  - ".rubocop_todo.yml"
39
44
  - ".ruby-gemset"
40
- - ".travis.yml"
41
45
  - CHANGELOG.md
42
46
  - CONTRIBUTING.md
43
47
  - Dangerfile
@@ -95,7 +99,9 @@ files:
95
99
  - spec/issues/650_params_array_spec.rb
96
100
  - spec/issues/680_keep_204_error_schemas_spec.rb
97
101
  - spec/issues/751_deeply_nested_objects_spec.rb
102
+ - spec/issues/776_multiple_presents_spec.rb
98
103
  - spec/issues/784_extensions_on_params_spec.rb
104
+ - spec/issues/809_utf8_routes_spec.rb
99
105
  - spec/lib/data_type_spec.rb
100
106
  - spec/lib/endpoint/params_parser_spec.rb
101
107
  - spec/lib/endpoint_spec.rb
@@ -140,6 +146,7 @@ files:
140
146
  - spec/swagger_v2/api_swagger_v2_response_spec.rb
141
147
  - spec/swagger_v2/api_swagger_v2_response_with_examples_spec.rb
142
148
  - spec/swagger_v2/api_swagger_v2_response_with_headers_spec.rb
149
+ - spec/swagger_v2/api_swagger_v2_response_with_models_spec.rb
143
150
  - spec/swagger_v2/api_swagger_v2_response_with_root_spec.rb
144
151
  - spec/swagger_v2/api_swagger_v2_spec.rb
145
152
  - spec/swagger_v2/api_swagger_v2_status_codes_spec.rb
@@ -156,6 +163,7 @@ files:
156
163
  - spec/swagger_v2/guarded_endpoint_spec.rb
157
164
  - spec/swagger_v2/hide_api_spec.rb
158
165
  - spec/swagger_v2/host_spec.rb
166
+ - spec/swagger_v2/inheritance_and_discriminator_spec.rb
159
167
  - spec/swagger_v2/mount_override_api_spec.rb
160
168
  - spec/swagger_v2/mounted_target_class_spec.rb
161
169
  - spec/swagger_v2/namespace_tags_prefix_spec.rb
@@ -166,8 +174,9 @@ files:
166
174
  - spec/swagger_v2/param_multi_type_spec.rb
167
175
  - spec/swagger_v2/param_type_spec.rb
168
176
  - spec/swagger_v2/param_values_spec.rb
169
- - spec/swagger_v2/params_array_collection_fromat_spec.rb
177
+ - spec/swagger_v2/params_array_collection_format_spec.rb
170
178
  - spec/swagger_v2/params_array_spec.rb
179
+ - spec/swagger_v2/params_example_spec.rb
171
180
  - spec/swagger_v2/params_hash_spec.rb
172
181
  - spec/swagger_v2/params_nested_spec.rb
173
182
  - spec/swagger_v2/parent_less_namespace_spec.rb
@@ -179,7 +188,7 @@ homepage: https://github.com/ruby-grape/grape-swagger
179
188
  licenses:
180
189
  - MIT
181
190
  metadata: {}
182
- post_install_message:
191
+ post_install_message:
183
192
  rdoc_options: []
184
193
  require_paths:
185
194
  - lib
@@ -187,15 +196,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
187
196
  requirements:
188
197
  - - ">="
189
198
  - !ruby/object:Gem::Version
190
- version: '2.4'
199
+ version: '2.5'
191
200
  required_rubygems_version: !ruby/object:Gem::Requirement
192
201
  requirements:
193
202
  - - ">="
194
203
  - !ruby/object:Gem::Version
195
204
  version: '0'
196
205
  requirements: []
197
- rubygems_version: 3.1.2
198
- signing_key:
206
+ rubygems_version: 3.2.3
207
+ signing_key:
199
208
  specification_version: 4
200
209
  summary: Add auto generated documentation to your Grape API that can be displayed
201
210
  with Swagger.
@@ -218,7 +227,9 @@ test_files:
218
227
  - spec/issues/650_params_array_spec.rb
219
228
  - spec/issues/680_keep_204_error_schemas_spec.rb
220
229
  - spec/issues/751_deeply_nested_objects_spec.rb
230
+ - spec/issues/776_multiple_presents_spec.rb
221
231
  - spec/issues/784_extensions_on_params_spec.rb
232
+ - spec/issues/809_utf8_routes_spec.rb
222
233
  - spec/lib/data_type_spec.rb
223
234
  - spec/lib/endpoint/params_parser_spec.rb
224
235
  - spec/lib/endpoint_spec.rb
@@ -263,6 +274,7 @@ test_files:
263
274
  - spec/swagger_v2/api_swagger_v2_response_spec.rb
264
275
  - spec/swagger_v2/api_swagger_v2_response_with_examples_spec.rb
265
276
  - spec/swagger_v2/api_swagger_v2_response_with_headers_spec.rb
277
+ - spec/swagger_v2/api_swagger_v2_response_with_models_spec.rb
266
278
  - spec/swagger_v2/api_swagger_v2_response_with_root_spec.rb
267
279
  - spec/swagger_v2/api_swagger_v2_spec.rb
268
280
  - spec/swagger_v2/api_swagger_v2_status_codes_spec.rb
@@ -279,6 +291,7 @@ test_files:
279
291
  - spec/swagger_v2/guarded_endpoint_spec.rb
280
292
  - spec/swagger_v2/hide_api_spec.rb
281
293
  - spec/swagger_v2/host_spec.rb
294
+ - spec/swagger_v2/inheritance_and_discriminator_spec.rb
282
295
  - spec/swagger_v2/mount_override_api_spec.rb
283
296
  - spec/swagger_v2/mounted_target_class_spec.rb
284
297
  - spec/swagger_v2/namespace_tags_prefix_spec.rb
@@ -289,8 +302,9 @@ test_files:
289
302
  - spec/swagger_v2/param_multi_type_spec.rb
290
303
  - spec/swagger_v2/param_type_spec.rb
291
304
  - spec/swagger_v2/param_values_spec.rb
292
- - spec/swagger_v2/params_array_collection_fromat_spec.rb
305
+ - spec/swagger_v2/params_array_collection_format_spec.rb
293
306
  - spec/swagger_v2/params_array_spec.rb
307
+ - spec/swagger_v2/params_example_spec.rb
294
308
  - spec/swagger_v2/params_hash_spec.rb
295
309
  - spec/swagger_v2/params_nested_spec.rb
296
310
  - spec/swagger_v2/parent_less_namespace_spec.rb
data/.travis.yml DELETED
@@ -1,35 +0,0 @@
1
- language: ruby
2
-
3
- os: linux
4
-
5
- before_install:
6
- - gem install bundler
7
-
8
- after_success:
9
- - bundle exec danger
10
-
11
- rvm:
12
- - 2.5.8
13
- - 2.6.6
14
- - 2.7.1
15
- env:
16
- - GRAPE_VERSION=1.3.0 MODEL_PARSER=grape-swagger-entity
17
- - GRAPE_VERSION=1.3.0 MODEL_PARSER=grape-swagger-representable
18
- - GRAPE_VERSION=1.3.0
19
- - GRAPE_VERSION=HEAD
20
-
21
- jobs:
22
- fast_finish: true
23
-
24
- include:
25
- - rvm: 2.4.10
26
- env:
27
- - rvm: ruby-head
28
- env:
29
- - rvm: jruby-head
30
- env:
31
-
32
- allow_failures:
33
- - rvm: 2.4.10
34
- - rvm: ruby-head
35
- - rvm: jruby-head