grape-swagger 0.25.0 → 0.25.1

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
  SHA1:
3
- metadata.gz: 65693b18186fa5904b3f3012ac7a94cec5d90a44
4
- data.tar.gz: d7e2b413a40e081cd155e76a554b1d7f3c532c9f
3
+ metadata.gz: 05e6839d574113d1a31a0b1758bb9426174b2dd5
4
+ data.tar.gz: ad8936f7e557193a2502e95d64c8ef7c90a04684
5
5
  SHA512:
6
- metadata.gz: 2e998b82aba1e6252f6e63fe9dcc2ea53cb6b8aa4f384de774ed71cae5855158378e3e8ecdf920742ec2f5a196434f80c7798713d75d2b1a593e5aed7b6b8719
7
- data.tar.gz: 3047cca817fd55c251717de9cf015dc26272f6da6996b67e317b2e058c18ff02fdd42bc5b1835da03500e8096cfc7da4ba1b813b012b5ee1e1993e18d413b502
6
+ metadata.gz: c0ed0cbb32dbe1998964427703cee5e7399f67dad503ba1bd04569b913343bb67e5782da445340e4eda390a1f0c424edd08546a06189047de7d2f9ce3bc55463
7
+ data.tar.gz: f01ba1a06247a146fed67950c98257d5708965531558f18468391da001e848aea03c2a80e3e19431337b10a2d912783ba8e50ed0fcedca3285ac7c637364d7ed
data/.rubocop_todo.yml CHANGED
@@ -18,7 +18,7 @@ Metrics/BlockLength:
18
18
  # Offense count: 3
19
19
  # Configuration parameters: CountComments.
20
20
  Metrics/ClassLength:
21
- Max: 240
21
+ Max: 247
22
22
 
23
23
  # Offense count: 10
24
24
  Metrics/CyclomaticComplexity:
data/CHANGELOG.md CHANGED
@@ -8,6 +8,19 @@
8
8
 
9
9
  * Your contribution here.
10
10
 
11
+
12
+ ### 0.25.1 (November 29, 2016)
13
+
14
+ #### Features
15
+
16
+ * [#531](https://github.com/ruby-grape/grape-swagger/pull/531): UUID data_type format support - [@migmartri](https://github.com/migmartri).
17
+ * [#534](https://github.com/ruby-grape/grape-swagger/pull/534): Allows to overwrite defaults status codes - [@LeFnord](https://github.com/LeFnord).
18
+
19
+ #### Fixes
20
+
21
+ * [#540](https://github.com/ruby-grape/grape-swagger/pull/540): Corrects exposing of array in post body - [@LeFnord](https://github.com/LeFnord).
22
+ * [#509](https://github.com/ruby-grape/grape-swagger/pull/509), [#529](https://github.com/ruby-grape/grape-swagger/pull/529): Making parent-less routes working - [@mur-wtag](https://github.com/mur-wtag).
23
+
11
24
  ### 0.25.0 (October 31, 2016)
12
25
 
13
26
  #### Features
data/README.md CHANGED
@@ -52,6 +52,8 @@ grape-swagger | swagger spec | grape | grape-entity | represen
52
52
  0.20.3 | 2.0 | >= 0.12.0 ... ~> 0.16.2 | ~> 0.5.1 | n/a |
53
53
  0.21.0 | 2.0 | >= 0.12.0 ... <= 0.16.2 | <= 0.5.1 | >= 2.4.1 |
54
54
  0.23.0 | 2.0 | >= 0.12.0 ... <= 0.17.0 | <= 0.5.1 | >= 2.4.1 |
55
+ 0.24.0 | 2.0 | >= 0.12.0 ... <= 0.18.0 | <= 0.5.1 | >= 2.4.1 |
56
+ 0.25.0 | 2.0 | >= 0.14.0 ... <= 0.18.0 | <= 0.5.2 | >= 2.4.1 |
55
57
 
56
58
  <a name="swagger-spec" />
57
59
  ## Swagger-Spec
@@ -402,6 +404,7 @@ add_swagger_documentation \
402
404
  * [Hiding parameters](#hiding-parameters)
403
405
  * [Setting a Swagger default value](#default-value)
404
406
  * [Response documentation](#response)
407
+ * [Changing default status codes](#change-status)
405
408
  * [Extensions](#extensions)
406
409
 
407
410
 
@@ -750,7 +753,7 @@ You can also document the HTTP status codes with a description and a specified m
750
753
  In the following cases, the schema ref would be taken from route.
751
754
 
752
755
  ```ruby
753
- desc 'thing', failures: [ { code: 400, message: "Invalid parameter entry" } ]
756
+ desc 'thing', failures: [ { code: 400, message: 'Invalid parameter entry' } ]
754
757
  get '/thing' do
755
758
  ...
756
759
  end
@@ -759,7 +762,7 @@ end
759
762
  ```ruby
760
763
  desc 'thing' do
761
764
  params Entities::Something.documentation
762
- failures [ { code: 400, message: "Invalid parameter entry" } ]
765
+ failures [ { code: 400, message: 'Invalid parameter entry' } ]
763
766
  end
764
767
  get '/thing' do
765
768
  ...
@@ -768,8 +771,8 @@ end
768
771
 
769
772
  ```ruby
770
773
  get '/thing', failures: [
771
- { code: 200, message: 'Ok' },
772
- { code: 400, message: "Invalid parameter entry" }
774
+ { code: 400, message: 'Invalid parameter entry' },
775
+ { code: 404, message: 'Not authorized' },
773
776
  ] do
774
777
  ...
775
778
  end
@@ -778,13 +781,13 @@ end
778
781
  By adding a `model` key, e.g. this would be taken.
779
782
  ```ruby
780
783
  get '/thing', failures: [
781
- { code: 200, message: 'Ok' },
782
- { code: 422, message: "Invalid parameter entry", model: Entities::ApiError }
784
+ { code: 400, message: 'General error' },
785
+ { code: 422, message: 'Invalid parameter entry', model: Entities::ApiError }
783
786
  ] do
784
787
  ...
785
788
  end
786
789
  ```
787
- If no status code is defined [defaults](/lib/grape-swagger/endpoint.rb#L121) would be taken.
790
+ If no status code is defined [defaults](/lib/grape-swagger/endpoint.rb#L210) would be taken.
788
791
 
789
792
  The result is then something like following:
790
793
 
@@ -805,6 +808,33 @@ The result is then something like following:
805
808
  },
806
809
  ```
807
810
 
811
+ <a name="change-status" />
812
+ #### Changing default status codes
813
+
814
+ The default status codes, one could be found (-> [status codes](lib/grape-swagger/doc_methods/status_codes.rb)) can be changed to your specific needs, to achive it, you have to change it for grape itself and for the documentation.
815
+
816
+ ```ruby
817
+ desc 'Get a list of stuff',
818
+ success: { code: 202, model: Entities::UseResponse, message: 'a changed status code' }
819
+ get do
820
+ status 202
821
+ # your code comes here
822
+ end
823
+
824
+ ```
825
+
826
+ ```json
827
+ "responses": {
828
+ "202": {
829
+ "description": "ok",
830
+ "schema": {
831
+ "$ref": "#/definitions/UseResponse"
832
+ }
833
+ }
834
+ },
835
+ ```
836
+
837
+
808
838
  <a name="extensions" />
809
839
  #### Extensions
810
840
 
@@ -926,7 +956,7 @@ module API
926
956
  class Client < Grape::Entity
927
957
  expose :name, documentation: { type: 'string', desc: 'Name' }
928
958
  expose :addresses, using: Entities::Address,
929
- documentation: { type: 'API::Address', desc: 'Addresses.', param_type: 'body', is_array: true }
959
+ documentation: { type: 'Entities::Address', desc: 'Addresses.', param_type: 'body', is_array: true }
930
960
  end
931
961
 
932
962
  class Address < Grape::Entity
@@ -937,13 +967,15 @@ module API
937
967
  class Clients < Grape::API
938
968
  version 'v1'
939
969
 
940
- desc 'Clients index', params: Entities::Client.documentation
970
+ desc 'Clients index',
971
+ params: Entities::Client.documentation,
972
+ success: Entities::Client
941
973
  get '/clients' do
942
974
  ...
943
975
  end
944
976
  end
945
977
 
946
- add_swagger_documentation models: [Entities::Client, Entities::Address]
978
+ add_swagger_documentation
947
979
  end
948
980
  ```
949
981
 
@@ -958,7 +990,7 @@ module API
958
990
  class Client < Grape::Entity
959
991
  expose :name, documentation: { type: 'string', desc: 'Name' }
960
992
  expose :address, using: Entities::Address,
961
- documentation: { type: 'API::Address', desc: 'Addresses.', param_type: 'body', is_array: false }
993
+ documentation: { type: 'Entities::Address', desc: 'Addresses.', param_type: 'body', is_array: false }
962
994
  end
963
995
 
964
996
  class Address < Grape::Entity
@@ -969,13 +1001,15 @@ module API
969
1001
  class Clients < Grape::API
970
1002
  version 'v1'
971
1003
 
972
- desc 'Clients index', params: Entities::Client.documentation
1004
+ desc 'Clients index',
1005
+ params: Entities::Client.documentation,
1006
+ success: Entities::Client
973
1007
  get '/clients' do
974
1008
  ...
975
1009
  end
976
1010
  end
977
1011
 
978
- add_swagger_documentation models: [Entities::Client, Entities::Address]
1012
+ add_swagger_documentation
979
1013
  end
980
1014
  ```
981
1015
 
data/lib/grape-swagger.rb CHANGED
@@ -100,7 +100,7 @@ module Grape
100
100
  # iterate over each single namespace
101
101
  namespaces.each do |name, namespace|
102
102
  # get the parent route for the namespace
103
- parent_route_name = name.match(%r{^/?([^/]*).*$})[1]
103
+ parent_route_name = extract_parent_route(name)
104
104
  parent_route = @target_class.combined_routes[parent_route_name]
105
105
  # fetch all routes that are within the current namespace
106
106
  namespace_routes = parent_route.reject do |route|
@@ -142,6 +142,12 @@ module Grape
142
142
  end
143
143
  end
144
144
 
145
+ def extract_parent_route(name)
146
+ route_name = name.match(%r{^/?([^/]*).*$})[1]
147
+ return route_name unless route_name.include? ':'
148
+ name.match(/\/[a-z]+/)[0].delete('/')
149
+ end
150
+
145
151
  def sub_routes_from(parent_route, sub_namespaces)
146
152
  sub_ns_paths = sub_namespaces.collect { |ns_name, _| ["/#{ns_name}", "/:version/#{ns_name}"] }
147
153
  sub_routes = parent_route.reject do |route|
@@ -83,7 +83,8 @@ module GrapeSwagger
83
83
  'dateTime' => %w(string date-time),
84
84
  'binary' => %w(string binary),
85
85
  'password' => %w(string password),
86
- 'email' => %w(string email)
86
+ 'email' => %w(string email),
87
+ 'uuid' => %w(string uuid)
87
88
  }.freeze
88
89
  end
89
90
  end
@@ -12,6 +12,8 @@ module GrapeSwagger
12
12
  @definitions = definitions
13
13
  unify!(params)
14
14
 
15
+ return correct_array_param(params) if should_correct_array?(params)
16
+
15
17
  params_to_move = movable_params(params)
16
18
  params << parent_definition_of_params(params_to_move, route)
17
19
 
@@ -20,6 +22,14 @@ module GrapeSwagger
20
22
 
21
23
  private
22
24
 
25
+ def should_correct_array?(param)
26
+ param.length == 1 && param.first[:in] == 'body' && param.first[:type] == 'array'
27
+ end
28
+
29
+ def correct_array_param(param)
30
+ param.first[:schema] = { type: param.first.delete(:type), items: param.first.delete(:items) }
31
+ end
32
+
23
33
  def parent_definition_of_params(params, route)
24
34
  definition_name = GrapeSwagger::DocMethods::OperationId.manipulate(parse_model(route.path))
25
35
  referenced_definition = build_definition(definition_name, params, route.request_method.downcase)
@@ -68,6 +68,8 @@ module GrapeSwagger
68
68
  collection_format = value_type[:documentation][:collectionFormat]
69
69
  end
70
70
 
71
+ param_type ||= value_type[:param_type]
72
+
71
73
  array_items = {}
72
74
  if definitions[value_type[:data_type]]
73
75
  array_items['$ref'] = "#/definitions/#{@parsed_param[:type]}"
@@ -8,6 +8,8 @@ module GrapeSwagger
8
8
  post: { code: 201, message: 'created {item}' },
9
9
  put: { code: 200, message: 'updated {item}' },
10
10
  patch: { code: 200, message: 'patched {item}' },
11
+ # 200 for delete would only be used, if a success entity is given,
12
+ # else it would be set to 204
11
13
  delete: { code: 200, message: 'deleted {item}' },
12
14
  head: { code: 200, message: 'head {item}' },
13
15
  options: { code: 200, message: 'option {item}' }
@@ -178,8 +178,8 @@ module Grape
178
178
 
179
179
  def response_object(route, markdown)
180
180
  codes = (route.http_codes || route.options[:failure] || [])
181
- codes = apply_defaults(route, codes) if route.options[:ignore_defaults].nil?
182
181
 
182
+ codes = apply_success_codes(route) + codes
183
183
  codes.map! { |x| x.is_a?(Array) ? { code: x[0], message: x[1], model: x[2] } : x }
184
184
 
185
185
  codes.each_with_object({}) do |value, memo|
@@ -207,11 +207,19 @@ module Grape
207
207
  end
208
208
  end
209
209
 
210
- def apply_defaults(route, codes)
210
+ def apply_success_codes(route)
211
211
  default_code = GrapeSwagger::DocMethods::StatusCodes.get[route.request_method.downcase.to_sym]
212
- default_code[:model] = @entity if @entity
213
- default_code[:message] = route.description || default_code[:message].sub('{item}', @item)
214
- [default_code] + codes
212
+ if @entity.is_a?(Hash)
213
+ default_code[:code] = @entity[:code] if @entity[:code].present?
214
+ default_code[:model] = @entity[:model] if @entity[:model].present?
215
+ default_code[:message] = @entity[:message] || route.description || default_code[:message].sub('{item}', @item)
216
+ else
217
+ default_code = GrapeSwagger::DocMethods::StatusCodes.get[route.request_method.downcase.to_sym]
218
+ default_code[:model] = @entity if @entity
219
+ default_code[:message] = route.description || default_code[:message].sub('{item}', @item)
220
+ end
221
+
222
+ [default_code]
215
223
  end
216
224
 
217
225
  def tag_object(route)
@@ -1,3 +1,3 @@
1
1
  module GrapeSwagger
2
- VERSION = '0.25.0'.freeze
2
+ VERSION = '0.25.1'.freeze
3
3
  end
@@ -0,0 +1,76 @@
1
+ require 'spec_helper'
2
+
3
+ describe '#533 specify status codes' do
4
+ include_context "#{MODEL_PARSER} swagger example"
5
+
6
+ let(:app) do
7
+ Class.new(Grape::API) do
8
+ namespace :issue_533 do
9
+ desc 'Get a list of stuff',
10
+ success: { code: 202, model: Entities::UseResponse, message: 'a changed status code' }
11
+ get do
12
+ status 202
13
+ { foo: 'that is the response' }
14
+ end
15
+
16
+ desc 'Post some stuff',
17
+ success: { code: 202, model: Entities::UseResponse, message: 'a changed status code' }
18
+ post do
19
+ status 202
20
+ { foo: 'that is the response' }
21
+ end
22
+
23
+ desc 'Post some stuff',
24
+ success: { code: 204, message: 'a changed status code' }
25
+ patch do
26
+ status 204
27
+ end
28
+
29
+ desc 'Delete some stuff',
30
+ success: { code: 203 }
31
+ delete do
32
+ status 203
33
+ end
34
+ end
35
+
36
+ add_swagger_documentation format: :json
37
+ end
38
+ end
39
+
40
+ subject do
41
+ get '/swagger_doc'
42
+ JSON.parse(last_response.body)['paths']['/issue_533']
43
+ end
44
+
45
+ let(:get_response) { get '/issue_533' }
46
+ specify { expect(get_response.status).to eql 202 }
47
+ let(:get_response_documentation) { subject['get']['responses'] }
48
+ specify do
49
+ expect(get_response_documentation.keys.first).to eql '202'
50
+ expect(get_response_documentation['202']).to include 'schema'
51
+ end
52
+
53
+ let(:post_response) { post '/issue_533' }
54
+ specify { expect(post_response.status).to eql 202 }
55
+ let(:post_response_documentation) { subject['post']['responses'] }
56
+ specify do
57
+ expect(post_response_documentation.keys.first).to eql '202'
58
+ expect(post_response_documentation['202']).to include 'schema'
59
+ end
60
+
61
+ let(:patch_response) { patch '/issue_533' }
62
+ specify { expect(patch_response.status).to eql 204 }
63
+ let(:patch_response_documentation) { subject['patch']['responses'] }
64
+ specify do
65
+ expect(patch_response_documentation.keys.first).to eql '204'
66
+ expect(patch_response_documentation['204']).not_to include 'schema'
67
+ end
68
+
69
+ let(:delete_response) { delete '/issue_533' }
70
+ specify { expect(delete_response.status).to eql 203 }
71
+ let(:delete_response_documentation) { subject['delete']['responses'] }
72
+ specify do
73
+ expect(delete_response_documentation.keys.first).to eql '203'
74
+ expect(delete_response_documentation['203']).not_to include 'schema'
75
+ end
76
+ end
@@ -0,0 +1,63 @@
1
+ require 'spec_helper'
2
+ require 'grape-entity'
3
+ require 'grape-swagger-entity'
4
+
5
+ describe '#427 nested entity given as string' do
6
+ let(:app) do
7
+ Class.new(Grape::API) do
8
+ namespace :issue_427 do
9
+ class Element < Grape::Entity
10
+ expose :id
11
+ expose :description
12
+ expose :role
13
+ end
14
+
15
+ class ArrayOfElements < Grape::Entity
16
+ expose :elements,
17
+ documentation: {
18
+ type: Element, is_array: true, param_type: 'body', required: true
19
+ }
20
+ end
21
+
22
+ desc 'create account',
23
+ params: ArrayOfElements.documentation
24
+ post do
25
+ present params
26
+ end
27
+ end
28
+
29
+ add_swagger_documentation format: :json
30
+ end
31
+ end
32
+
33
+ subject do
34
+ get '/swagger_doc'
35
+ JSON.parse(last_response.body)
36
+ end
37
+
38
+ let(:parameters) { subject['paths']['/issue_427']['post']['parameters'] }
39
+ let(:definitions) { subject['definitions'] }
40
+
41
+ specify do
42
+ expect(parameters).to eql(
43
+ [
44
+ {
45
+ 'in' => 'body', 'name' => 'elements', 'required' => true, 'schema' => {
46
+ 'type' => 'array', 'items' => { '$ref' => '#/definitions/Element' }
47
+ }
48
+ }
49
+ ]
50
+ )
51
+
52
+ expect(definitions).to eql(
53
+ 'Element' => {
54
+ 'type' => 'object',
55
+ 'properties' => {
56
+ 'id' => { 'type' => 'string' },
57
+ 'description' => { 'type' => 'string' },
58
+ 'role' => { 'type' => 'string' }
59
+ }
60
+ }
61
+ )
62
+ end
63
+ end
@@ -66,6 +66,23 @@ RSpec.shared_context 'namespace example' do
66
66
  end
67
67
  end
68
68
  end
69
+
70
+ class ParentLessNamespaceApi < Grape::API
71
+ route_param :animal do
72
+ route_param :breed do
73
+ resource :queues do
74
+ route_param :queue_id do
75
+ resource :reservations do
76
+ desc 'Lists all reservations specific type of animal of specific breed in specific queue'
77
+ get do
78
+ { bla: 'Bla Black' }
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
69
86
  end
70
87
  end
71
88
  end
@@ -8,12 +8,12 @@ describe 'swagger spec v2.0' do
8
8
  format :json
9
9
 
10
10
  desc 'This creates Thing after a delay',
11
- success: Entities::Something
11
+ success: { code: 202, message: 'OK', model: Entities::Something }
12
12
  params do
13
13
  requires :text, type: String, documentation: { type: 'string', desc: 'Content of something.' }
14
14
  requires :links, type: Array, documentation: { type: 'link', is_array: true }
15
15
  end
16
- post '/delay_thing', http_codes: [{ code: 202, message: 'OK' }], ignore_defaults: true do
16
+ post '/delay_thing' do
17
17
  status 202
18
18
  end
19
19
 
@@ -40,7 +40,7 @@ describe 'swagger spec v2.0' do
40
40
  let(:json) { JSON.parse(last_response.body) }
41
41
 
42
42
  it 'only returns one response if ignore_defaults is specified' do
43
- expect(json['paths']['/delay_thing']['post']['responses']).to eq('202' => { 'description' => 'OK' })
43
+ expect(json['paths']['/delay_thing']['post']['responses']).to eq('202' => { 'description' => 'OK', 'schema' => { '$ref' => '#/definitions/Something' } })
44
44
  expect(json['paths']['/delay_thing']['post']['responses'].keys).not_to include '201'
45
45
  end
46
46
  end
@@ -0,0 +1,47 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'a parent less namespace' do
4
+ include_context 'namespace example'
5
+
6
+ before :all do
7
+ class ParentLessApi < Grape::API
8
+ prefix :api
9
+ mount TheApi::ParentLessNamespaceApi
10
+ add_swagger_documentation version: 'v1'
11
+ end
12
+ end
13
+
14
+ def app
15
+ ParentLessApi
16
+ end
17
+
18
+ describe 'retrieves swagger-documentation on /swagger_doc' do
19
+ let(:route_name) { ':animal/:breed/queues/:queue_id/reservations' }
20
+ subject do
21
+ get '/api/swagger_doc.json'
22
+ JSON.parse(last_response.body)
23
+ end
24
+
25
+ context 'not raises error' do
26
+ specify do
27
+ expect(subject['tags']).to eql([{ 'name' => 'queues', 'description' => 'Operations about queues' }])
28
+ expect(subject['paths']['/api/{animal}/{breed}/queues/{queue_id}/reservations']['get']['operationId'])
29
+ .to eql('getApiAnimalBreedQueuesQueueIdReservations')
30
+ end
31
+ end
32
+
33
+ context 'raises error' do
34
+ specify do
35
+ allow_any_instance_of(ParentLessApi)
36
+ .to receive(:extract_parent_route).with(route_name).and_return(':animal') # BUT IT'S NOT STUBBING, CAUSE IT'S A PRIVATE METHODS
37
+ expect { subject }.to raise_error NoMethodError
38
+ end
39
+ end
40
+
41
+ context 'ParentLessApi.extract_parent_route' do
42
+ specify do
43
+ expect(ParentLessApi.send(:extract_parent_route, route_name)).to eq('queues')
44
+ end
45
+ end
46
+ end
47
+ end
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: 0.25.0
4
+ version: 0.25.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: 2016-10-31 00:00:00.000000000 Z
11
+ date: 2016-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: grape
@@ -261,6 +261,8 @@ files:
261
261
  - spec/issues/403_versions_spec.rb
262
262
  - spec/issues/427_entity_as_string_spec.rb
263
263
  - spec/issues/430_entity_definitions_spec.rb
264
+ - spec/issues/533_specify_status_code_spec.rb
265
+ - spec/issues/539_array_post_body.rb
264
266
  - spec/lib/data_type_spec.rb
265
267
  - spec/lib/endpoint_spec.rb
266
268
  - spec/lib/extensions_spec.rb
@@ -324,6 +326,7 @@ files:
324
326
  - spec/swagger_v2/params_array_spec.rb
325
327
  - spec/swagger_v2/params_hash_spec.rb
326
328
  - spec/swagger_v2/params_nested_spec.rb
329
+ - spec/swagger_v2/parent_less_namespace.rb
327
330
  - spec/swagger_v2/reference_entity.rb
328
331
  - spec/swagger_v2/security_requirement_spec.rb
329
332
  - spec/swagger_v2/simple_mounted_api_spec.rb
@@ -348,7 +351,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
348
351
  version: '0'
349
352
  requirements: []
350
353
  rubyforge_project:
351
- rubygems_version: 2.6.7
354
+ rubygems_version: 2.6.8
352
355
  signing_key:
353
356
  specification_version: 4
354
357
  summary: Add auto generated documentation to your Grape API that can be displayed
@@ -357,6 +360,8 @@ test_files:
357
360
  - spec/issues/403_versions_spec.rb
358
361
  - spec/issues/427_entity_as_string_spec.rb
359
362
  - spec/issues/430_entity_definitions_spec.rb
363
+ - spec/issues/533_specify_status_code_spec.rb
364
+ - spec/issues/539_array_post_body.rb
360
365
  - spec/lib/data_type_spec.rb
361
366
  - spec/lib/endpoint_spec.rb
362
367
  - spec/lib/extensions_spec.rb
@@ -420,6 +425,7 @@ test_files:
420
425
  - spec/swagger_v2/params_array_spec.rb
421
426
  - spec/swagger_v2/params_hash_spec.rb
422
427
  - spec/swagger_v2/params_nested_spec.rb
428
+ - spec/swagger_v2/parent_less_namespace.rb
423
429
  - spec/swagger_v2/reference_entity.rb
424
430
  - spec/swagger_v2/security_requirement_spec.rb
425
431
  - spec/swagger_v2/simple_mounted_api_spec.rb