grape-swagger 0.20.2 → 0.20.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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +0 -3
  3. data/.rubocop_todo.yml +43 -33
  4. data/.travis.yml +22 -13
  5. data/CHANGELOG.md +29 -53
  6. data/Gemfile +1 -1
  7. data/README.md +24 -24
  8. data/example/api/endpoints.rb +28 -29
  9. data/example/api/entities.rb +1 -1
  10. data/example/config.ru +5 -7
  11. data/grape-swagger.gemspec +1 -1
  12. data/lib/grape-swagger.rb +9 -6
  13. data/lib/grape-swagger/doc_methods.rb +1 -1
  14. data/lib/grape-swagger/doc_methods/extensions.rb +3 -3
  15. data/lib/grape-swagger/doc_methods/headers.rb +1 -1
  16. data/lib/grape-swagger/doc_methods/move_params.rb +25 -16
  17. data/lib/grape-swagger/doc_methods/operation_id.rb +2 -2
  18. data/lib/grape-swagger/doc_methods/parse_params.rb +12 -5
  19. data/lib/grape-swagger/doc_methods/path_string.rb +1 -1
  20. data/lib/grape-swagger/doc_methods/status_codes.rb +3 -1
  21. data/lib/grape-swagger/doc_methods/tag_name_description.rb +1 -1
  22. data/lib/grape-swagger/endpoint.rb +33 -46
  23. data/lib/grape-swagger/grape/route.rb +16 -0
  24. data/lib/grape-swagger/version.rb +1 -1
  25. data/spec/issues/403_versions_spec.rb +158 -0
  26. data/spec/lib/data_type_spec.rb +9 -10
  27. data/spec/lib/endpoint_spec.rb +1 -2
  28. data/spec/lib/extensions_spec.rb +44 -40
  29. data/spec/lib/move_params_spec.rb +113 -93
  30. data/spec/lib/operation_id_spec.rb +42 -12
  31. data/spec/lib/optional_object_spec.rb +3 -4
  32. data/spec/lib/path_string_spec.rb +2 -2
  33. data/spec/lib/produces_consumes_spec.rb +64 -53
  34. data/spec/markdown/redcarpet_adapter_spec.rb +1 -1
  35. data/spec/spec_helper.rb +1 -1
  36. data/spec/support/api_swagger_v2_result.rb +122 -128
  37. data/spec/support/namespace_tags.rb +17 -19
  38. data/spec/support/the_api_entities.rb +1 -3
  39. data/spec/support/the_paths_definitions.rb +95 -85
  40. data/spec/swagger_v2/api_swagger_v2_definitions-models_spec.rb +1 -1
  41. data/spec/swagger_v2/api_swagger_v2_detail_spec.rb +19 -19
  42. data/spec/swagger_v2/api_swagger_v2_extensions_spec.rb +21 -21
  43. data/spec/swagger_v2/api_swagger_v2_format-content_type_spec.rb +34 -32
  44. data/spec/swagger_v2/api_swagger_v2_global_configuration_spec.rb +5 -7
  45. data/spec/swagger_v2/api_swagger_v2_headers_spec.rb +19 -18
  46. data/spec/swagger_v2/api_swagger_v2_hide_documentation_path_spec.rb +9 -10
  47. data/spec/swagger_v2/api_swagger_v2_mounted_spec.rb +21 -24
  48. data/spec/swagger_v2/api_swagger_v2_param_type_body_nested_spec.rb +90 -92
  49. data/spec/swagger_v2/api_swagger_v2_param_type_body_spec.rb +54 -54
  50. data/spec/swagger_v2/api_swagger_v2_param_type_spec.rb +65 -57
  51. data/spec/swagger_v2/api_swagger_v2_request_params_fix_spec.rb +17 -14
  52. data/spec/swagger_v2/api_swagger_v2_response_spec.rb +79 -123
  53. data/spec/swagger_v2/api_swagger_v2_spec.rb +33 -34
  54. data/spec/swagger_v2/api_swagger_v2_type-format_spec.rb +32 -36
  55. data/spec/swagger_v2/boolean_params_spec.rb +1 -1
  56. data/spec/swagger_v2/default_api_spec.rb +26 -29
  57. data/spec/swagger_v2/description_not_initialized.rb +3 -3
  58. data/spec/swagger_v2/float_api_spec.rb +1 -1
  59. data/spec/swagger_v2/form_params_spec.rb +4 -4
  60. data/spec/swagger_v2/hide_api_spec.rb +48 -51
  61. data/spec/swagger_v2/host.rb +1 -1
  62. data/spec/swagger_v2/mounted_target_class_spec.rb +31 -33
  63. data/spec/swagger_v2/namespace_tags_prefix_spec.rb +23 -21
  64. data/spec/swagger_v2/namespace_tags_spec.rb +23 -20
  65. data/spec/swagger_v2/param_type_spec.rb +5 -6
  66. data/spec/swagger_v2/param_values_spec.rb +31 -37
  67. data/spec/swagger_v2/params_array_spec.rb +17 -15
  68. data/spec/swagger_v2/params_hash_spec.rb +17 -15
  69. data/spec/swagger_v2/params_nested_spec.rb +12 -10
  70. data/spec/swagger_v2/reference_entity.rb +9 -9
  71. data/spec/swagger_v2/response_model_spec.rb +58 -62
  72. data/spec/swagger_v2/simple_mounted_api_spec.rb +179 -147
  73. metadata +5 -10
  74. data/spec/params_entity_spec.rb +0 -49
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `header`' do
4
- include_context "the api entities"
4
+ include_context 'the api entities'
5
5
 
6
6
  before :all do
7
7
  module TheApi
@@ -15,7 +15,7 @@ describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `h
15
15
  end
16
16
 
17
17
  post '/in_body' do
18
- { "declared_params" => declared(params) }
18
+ { 'declared_params' => declared(params) }
19
19
  end
20
20
 
21
21
  desc 'put in body /wo entity'
@@ -27,30 +27,30 @@ describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `h
27
27
  end
28
28
 
29
29
  put '/in_body/:key' do
30
- { "declared_params" => declared(params) }
30
+ { 'declared_params' => declared(params) }
31
31
  end
32
32
  end
33
33
 
34
34
  namespace :with_entities do
35
35
  desc 'post in body with entity',
36
- success: TheApi::Entities::ResponseItem
36
+ success: TheApi::Entities::ResponseItem
37
37
  params do
38
38
  requires :name, type: String, documentation: { desc: 'name', param_type: 'body' }
39
39
  end
40
40
 
41
41
  post '/in_body' do
42
- { "declared_params" => declared(params) }
42
+ { 'declared_params' => declared(params) }
43
43
  end
44
44
 
45
45
  desc 'put in body with entity',
46
- success: TheApi::Entities::ResponseItem
46
+ success: TheApi::Entities::ResponseItem
47
47
  params do
48
48
  requires :id, type: Integer
49
49
  optional :name, type: String, documentation: { desc: 'name', param_type: 'body' }
50
50
  end
51
51
 
52
52
  put '/in_body/:id' do
53
- { "declared_params" => declared(params) }
53
+ { 'declared_params' => declared(params) }
54
54
  end
55
55
  end
56
56
 
@@ -70,42 +70,42 @@ describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `h
70
70
  end
71
71
 
72
72
  specify do
73
- expect(subject['paths']['/wo_entities/in_body']['post']['parameters']).to eql([
74
- {"name"=>"InBody", "in"=>"body", "required"=>true, "schema"=>{"$ref"=>"#/definitions/postRequestInBody"}}
75
- ])
73
+ expect(subject['paths']['/wo_entities/in_body']['post']['parameters']).to eql(
74
+ [
75
+ { 'name' => 'postWoEntitiesInBody', 'in' => 'body', 'required' => true, 'schema' => { '$ref' => '#/definitions/postWoEntitiesInBody' } }
76
+ ])
76
77
  end
77
78
 
78
79
  specify do
79
- expect(subject['definitions']['postRequestInBody']).to eql({
80
- "description" => "post in body /wo entity",
81
- "type"=>"object",
82
- "properties"=>{
83
- "in_body_1"=>{"type"=>"integer", "format"=>"int32", "description"=>"in_body_1"},
84
- "in_body_2"=>{"type"=>"string", "description"=>"in_body_2"},
85
- "in_body_3"=>{"type"=>"string", "description"=>"in_body_3"}
80
+ expect(subject['definitions']['postWoEntitiesInBody']).to eql(
81
+ 'description' => 'post in body /wo entity',
82
+ 'type' => 'object',
83
+ 'properties' => {
84
+ 'in_body_1' => { 'type' => 'integer', 'format' => 'int32', 'description' => 'in_body_1' },
85
+ 'in_body_2' => { 'type' => 'string', 'description' => 'in_body_2' },
86
+ 'in_body_3' => { 'type' => 'string', 'description' => 'in_body_3' }
86
87
  },
87
- "required"=>["in_body_1"]
88
- })
88
+ 'required' => ['in_body_1'])
89
89
  end
90
90
 
91
91
  specify do
92
- expect(subject['paths']['/wo_entities/in_body/{key}']['put']['parameters']).to eql([
93
- {"in"=>"path", "name"=>"key", "description"=>nil, "type"=>"integer", "format"=>"int32", "required"=>true},
94
- {"name"=>"InBody", "in"=>"body", "required"=>true, "schema"=>{"$ref"=>"#/definitions/putRequestInBody"}}
95
- ])
92
+ expect(subject['paths']['/wo_entities/in_body/{key}']['put']['parameters']).to eql(
93
+ [
94
+ { 'in' => 'path', 'name' => 'key', 'type' => 'integer', 'format' => 'int32', 'required' => true },
95
+ { 'name' => 'putWoEntitiesInBodyKey', 'in' => 'body', 'required' => true, 'schema' => { '$ref' => '#/definitions/putWoEntitiesInBodyKey' } }
96
+ ])
96
97
  end
97
98
 
98
99
  specify do
99
- expect(subject['definitions']['putRequestInBody']).to eql({
100
- "description" => "put in body /wo entity",
101
- "type"=>"object",
102
- "properties"=>{
103
- "key"=>{"type"=>"integer", "format"=>"int32", "readOnly"=>true},
104
- "in_body_1"=>{"type"=>"integer", "format"=>"int32", "description"=>"in_body_1"},
105
- "in_body_2"=>{"type"=>"string", "description"=>"in_body_2"},
106
- "in_body_3"=>{"type"=>"string", "description"=>"in_body_3"}
107
- }
108
- })
100
+ expect(subject['definitions']['putWoEntitiesInBodyKey']).to eql(
101
+ 'description' => 'put in body /wo entity',
102
+ 'type' => 'object',
103
+ 'properties' => {
104
+ 'key' => { 'type' => 'integer', 'format' => 'int32', 'readOnly' => true },
105
+ 'in_body_1' => { 'type' => 'integer', 'format' => 'int32', 'description' => 'in_body_1' },
106
+ 'in_body_2' => { 'type' => 'string', 'description' => 'in_body_2' },
107
+ 'in_body_3' => { 'type' => 'string', 'description' => 'in_body_3' }
108
+ })
109
109
  end
110
110
  end
111
111
 
@@ -116,36 +116,36 @@ describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `h
116
116
  end
117
117
 
118
118
  specify do
119
- expect(subject['paths']['/with_entities/in_body']['post']['parameters']).to eql([
120
- {"name"=>"ResponseItem", "in"=>"body", "required"=>true, "schema"=>{"$ref"=>"#/definitions/postRequestResponseItem"}}
121
- ])
119
+ expect(subject['paths']['/with_entities/in_body']['post']['parameters']).to eql(
120
+ [
121
+ { 'name' => 'ResponseItem', 'in' => 'body', 'required' => true, 'schema' => { '$ref' => '#/definitions/postRequestResponseItem' } }
122
+ ])
122
123
  end
123
124
 
124
125
  specify do
125
- expect(subject['definitions']['postRequestResponseItem']).to eql({
126
- "description" => "post in body with entity",
127
- "type"=>"object",
128
- "properties"=>{
129
- "name"=>{"type"=>"string", "description"=>"name"}},
130
- "required"=>["name"]
131
- })
126
+ expect(subject['definitions']['postRequestResponseItem']).to eql(
127
+ 'description' => 'post in body with entity',
128
+ 'type' => 'object',
129
+ 'properties' => {
130
+ 'name' => { 'type' => 'string', 'description' => 'name' } },
131
+ 'required' => ['name'])
132
132
  end
133
133
 
134
134
  specify do
135
- expect(subject['paths']['/with_entities/in_body/{id}']['put']['parameters']).to eql([
136
- {"in"=>"path", "name"=>"id", "description"=>nil, "type"=>"integer", "format"=>"int32", "required"=>true},
137
- {"name"=>"ResponseItem", "in"=>"body", "required"=>true, "schema"=>{"$ref"=>"#/definitions/putRequestResponseItem"}}
138
- ])
135
+ expect(subject['paths']['/with_entities/in_body/{id}']['put']['parameters']).to eql(
136
+ [
137
+ { 'in' => 'path', 'name' => 'id', 'type' => 'integer', 'format' => 'int32', 'required' => true },
138
+ { 'name' => 'ResponseItem', 'in' => 'body', 'required' => true, 'schema' => { '$ref' => '#/definitions/putRequestResponseItem' } }
139
+ ])
139
140
  end
140
141
 
141
142
  specify do
142
- expect(subject['definitions']['putRequestResponseItem']).to eql({
143
- "description" => "put in body with entity",
144
- "type"=>"object",
145
- "properties"=>{
146
- "id"=>{"type"=>"integer", "format"=>"int32", "readOnly"=>true},
147
- "name"=>{"type"=>"string", "description"=>"name"}}
148
- })
143
+ expect(subject['definitions']['putRequestResponseItem']).to eql(
144
+ 'description' => 'put in body with entity',
145
+ 'type' => 'object',
146
+ 'properties' => {
147
+ 'id' => { 'type' => 'integer', 'format' => 'int32', 'readOnly' => true },
148
+ 'name' => { 'type' => 'string', 'description' => 'name' } })
149
149
  end
150
150
  end
151
151
  end
@@ -1,25 +1,25 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `header`' do
4
- include_context "the api entities"
4
+ include_context 'the api entities'
5
5
 
6
6
  before :all do
7
7
  module TheApi
8
8
  class ParamTypeApi < Grape::API
9
9
  # using `:param_type`
10
10
  desc 'full set of request param types',
11
- success: TheApi::Entities::UseResponse
11
+ success: TheApi::Entities::UseResponse
12
12
  params do
13
13
  optional :in_query, type: String, documentation: { param_type: 'query' }
14
14
  optional :in_header, type: String, documentation: { param_type: 'header' }
15
15
  end
16
16
 
17
17
  get '/defined_param_type' do
18
- { "declared_params" => declared(params) }
18
+ { 'declared_params' => declared(params) }
19
19
  end
20
20
 
21
21
  desc 'full set of request param types',
22
- success: TheApi::Entities::UseResponse
22
+ success: TheApi::Entities::UseResponse
23
23
  params do
24
24
  requires :in_path, type: Integer
25
25
  optional :in_query, type: String, documentation: { param_type: 'query' }
@@ -27,11 +27,11 @@ describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `h
27
27
  end
28
28
 
29
29
  get '/defined_param_type/:in_path' do
30
- { "declared_params" => declared(params) }
30
+ { 'declared_params' => declared(params) }
31
31
  end
32
32
 
33
33
  desc 'full set of request param types',
34
- success: TheApi::Entities::UseResponse
34
+ success: TheApi::Entities::UseResponse
35
35
  params do
36
36
  optional :in_path, type: Integer
37
37
  optional :in_query, type: String, documentation: { param_type: 'query' }
@@ -39,23 +39,23 @@ describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `h
39
39
  end
40
40
 
41
41
  delete '/defined_param_type/:in_path' do
42
- { "declared_params" => declared(params) }
42
+ { 'declared_params' => declared(params) }
43
43
  end
44
44
 
45
45
  # using `:in`
46
46
  desc 'full set of request param types using `:in`',
47
- success: TheApi::Entities::UseResponse
47
+ success: TheApi::Entities::UseResponse
48
48
  params do
49
49
  optional :in_query, type: String, documentation: { in: 'query' }
50
50
  optional :in_header, type: String, documentation: { in: 'header' }
51
51
  end
52
52
 
53
53
  get '/defined_in' do
54
- { "declared_params" => declared(params) }
54
+ { 'declared_params' => declared(params) }
55
55
  end
56
56
 
57
57
  desc 'full set of request param types using `:in`',
58
- success: TheApi::Entities::UseResponse
58
+ success: TheApi::Entities::UseResponse
59
59
  params do
60
60
  requires :in_path, type: Integer
61
61
  optional :in_query, type: String, documentation: { in: 'query' }
@@ -63,7 +63,7 @@ describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `h
63
63
  end
64
64
 
65
65
  get '/defined_in/:in_path' do
66
- { "declared_params" => declared(params) }
66
+ { 'declared_params' => declared(params) }
67
67
  end
68
68
 
69
69
  desc 'full set of request param types using `:in`'
@@ -74,31 +74,30 @@ describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `h
74
74
  end
75
75
 
76
76
  delete '/defined_in/:in_path' do
77
- { "declared_params" => declared(params) }
77
+ { 'declared_params' => declared(params) }
78
78
  end
79
79
 
80
80
  # file
81
81
  desc 'file download',
82
- success: TheApi::Entities::UseResponse
82
+ success: TheApi::Entities::UseResponse
83
83
  params do
84
84
  requires :name, type: String
85
85
  end
86
86
 
87
87
  get '/download' do
88
- { "declared_params" => declared(params) }
88
+ { 'declared_params' => declared(params) }
89
89
  end
90
90
 
91
91
  desc 'file upload',
92
- success: TheApi::Entities::UseResponse
92
+ success: TheApi::Entities::UseResponse
93
93
  params do
94
94
  requires :name, type: File
95
95
  end
96
96
 
97
97
  post '/upload' do
98
- { "declared_params" => declared(params) }
98
+ { 'declared_params' => declared(params) }
99
99
  end
100
100
 
101
-
102
101
  add_swagger_documentation
103
102
  end
104
103
  end
@@ -115,15 +114,16 @@ describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `h
115
114
  end
116
115
 
117
116
  specify do
118
- expect(subject['paths']['/defined_param_type/{in_path}']['delete']['responses']).to eql({
119
- "200"=>{"description"=>"full set of request param types", "schema"=>{"$ref"=>"#/definitions/UseResponse"}}
120
- })
117
+ expect(subject['paths']['/defined_param_type/{in_path}']['delete']['responses']).to eql(
118
+ '200' => {
119
+ 'description' => 'full set of request param types',
120
+ 'schema' => { '$ref' => '#/definitions/UseResponse' } })
121
121
  end
122
122
 
123
123
  specify do
124
- expect(subject['paths']['/defined_in/{in_path}']['delete']['responses']).to eql({
125
- "204"=>{"description"=>"full set of request param types using `:in`"}
126
- })
124
+ expect(subject['paths']['/defined_in/{in_path}']['delete']['responses']).to eql(
125
+ '204' => {
126
+ 'description' => 'full set of request param types using `:in`' })
127
127
  end
128
128
  end
129
129
 
@@ -134,26 +134,29 @@ describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `h
134
134
  end
135
135
 
136
136
  specify do
137
- expect(subject['paths']['/defined_param_type']['get']['parameters']).to eql([
138
- {"in"=>"query", "name"=>"in_query", "description"=>nil, "required"=>false, "type"=>"string"},
139
- {"in"=>"header", "name"=>"in_header", "description"=>nil, "required"=>false, "type"=>"string"},
140
- ])
137
+ expect(subject['paths']['/defined_param_type']['get']['parameters']).to eql(
138
+ [
139
+ { 'in' => 'query', 'name' => 'in_query', 'required' => false, 'type' => 'string' },
140
+ { 'in' => 'header', 'name' => 'in_header', 'required' => false, 'type' => 'string' }
141
+ ])
141
142
  end
142
143
 
143
144
  specify do
144
- expect(subject['paths']['/defined_param_type/{in_path}']['get']['parameters']).to eql([
145
- {"in"=>"path", "name"=>"in_path", "description"=>nil, "required"=>true, "type"=>"integer", "format"=>"int32"},
146
- {"in"=>"query", "name"=>"in_query", "description"=>nil, "required"=>false, "type"=>"string"},
147
- {"in"=>"header", "name"=>"in_header", "description"=>nil, "required"=>false, "type"=>"string"},
148
- ])
145
+ expect(subject['paths']['/defined_param_type/{in_path}']['get']['parameters']).to eql(
146
+ [
147
+ { 'in' => 'path', 'name' => 'in_path', 'required' => true, 'type' => 'integer', 'format' => 'int32' },
148
+ { 'in' => 'query', 'name' => 'in_query', 'required' => false, 'type' => 'string' },
149
+ { 'in' => 'header', 'name' => 'in_header', 'required' => false, 'type' => 'string' }
150
+ ])
149
151
  end
150
152
 
151
153
  specify do
152
- expect(subject['paths']['/defined_param_type/{in_path}']['delete']['parameters']).to eql([
153
- {"in"=>"path", "name"=>"in_path", "description"=>nil, "required"=>true, "type"=>"integer", "format"=>"int32"},
154
- {"in"=>"query", "name"=>"in_query", "description"=>nil, "required"=>false, "type"=>"string"},
155
- {"in"=>"header", "name"=>"in_header", "description"=>nil, "required"=>false, "type"=>"string"},
156
- ])
154
+ expect(subject['paths']['/defined_param_type/{in_path}']['delete']['parameters']).to eql(
155
+ [
156
+ { 'in' => 'path', 'name' => 'in_path', 'required' => true, 'type' => 'integer', 'format' => 'int32' },
157
+ { 'in' => 'query', 'name' => 'in_query', 'required' => false, 'type' => 'string' },
158
+ { 'in' => 'header', 'name' => 'in_header', 'required' => false, 'type' => 'string' }
159
+ ])
157
160
  end
158
161
  end
159
162
 
@@ -164,26 +167,29 @@ describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `h
164
167
  end
165
168
 
166
169
  specify do
167
- expect(subject['paths']['/defined_in']['get']['parameters']).to eql([
168
- {"in"=>"query", "name"=>"in_query", "description"=>nil, "required"=>false, "type"=>"string"},
169
- {"in"=>"header", "name"=>"in_header", "description"=>nil, "required"=>false, "type"=>"string"},
170
- ])
170
+ expect(subject['paths']['/defined_in']['get']['parameters']).to eql(
171
+ [
172
+ { 'in' => 'query', 'name' => 'in_query', 'required' => false, 'type' => 'string' },
173
+ { 'in' => 'header', 'name' => 'in_header', 'required' => false, 'type' => 'string' }
174
+ ])
171
175
  end
172
176
 
173
177
  specify do
174
- expect(subject['paths']['/defined_in/{in_path}']['get']['parameters']).to eql([
175
- {"in"=>"path", "name"=>"in_path", "description"=>nil, "required"=>true, "type"=>"integer", "format"=>"int32"},
176
- {"in"=>"query", "name"=>"in_query", "description"=>nil, "required"=>false, "type"=>"string"},
177
- {"in"=>"header", "name"=>"in_header", "description"=>nil, "required"=>false, "type"=>"string"},
178
- ])
178
+ expect(subject['paths']['/defined_in/{in_path}']['get']['parameters']).to eql(
179
+ [
180
+ { 'in' => 'path', 'name' => 'in_path', 'required' => true, 'type' => 'integer', 'format' => 'int32' },
181
+ { 'in' => 'query', 'name' => 'in_query', 'required' => false, 'type' => 'string' },
182
+ { 'in' => 'header', 'name' => 'in_header', 'required' => false, 'type' => 'string' }
183
+ ])
179
184
  end
180
185
 
181
186
  specify do
182
- expect(subject['paths']['/defined_in/{in_path}']['delete']['parameters']).to eql([
183
- {"in"=>"path", "name"=>"in_path", "description"=>nil, "required"=>true, "type"=>"integer", "format"=>"int32"},
184
- {"in"=>"query", "name"=>"in_query", "description"=>nil, "required"=>false, "type"=>"string"},
185
- {"in"=>"header", "name"=>"in_header", "description"=>nil, "required"=>false, "type"=>"string"},
186
- ])
187
+ expect(subject['paths']['/defined_in/{in_path}']['delete']['parameters']).to eql(
188
+ [
189
+ { 'in' => 'path', 'name' => 'in_path', 'required' => true, 'type' => 'integer', 'format' => 'int32' },
190
+ { 'in' => 'query', 'name' => 'in_query', 'required' => false, 'type' => 'string' },
191
+ { 'in' => 'header', 'name' => 'in_header', 'required' => false, 'type' => 'string' }
192
+ ])
187
193
  end
188
194
  end
189
195
 
@@ -195,9 +201,10 @@ describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `h
195
201
  end
196
202
 
197
203
  specify do
198
- expect(subject['paths']['/upload']['post']['parameters']).to eql([
199
- {"in"=>"formData", "name"=>"name", "description"=>nil, "required"=>true, "type"=>"file"}
200
- ])
204
+ expect(subject['paths']['/upload']['post']['parameters']).to eql(
205
+ [
206
+ { 'in' => 'formData', 'name' => 'name', 'required' => true, 'type' => 'file' }
207
+ ])
201
208
  end
202
209
  end
203
210
 
@@ -208,9 +215,10 @@ describe 'setting of param type, such as `query`, `path`, `formData`, `body`, `h
208
215
  end
209
216
 
210
217
  specify do
211
- expect(subject['paths']['/download']['get']['parameters']).to eql([
212
- {"in"=>"query", "name"=>"name", "description"=>nil, "required"=>true, "type"=>"string"}
213
- ])
218
+ expect(subject['paths']['/download']['get']['parameters']).to eql(
219
+ [
220
+ { 'in' => 'query', 'name' => 'name', 'required' => true, 'type' => 'string' }
221
+ ])
214
222
  end
215
223
  end
216
224
  end
@@ -10,22 +10,22 @@ describe 'additional parameter settings' do
10
10
  optional :name, type: String
11
11
  end
12
12
  put ':id' do
13
- { "declared_params" => declared(params) }
13
+ { 'declared_params' => declared(params) }
14
14
  end
15
15
 
16
16
  desc 'Get booking details'
17
17
  get ':id' do
18
- { "declared_params" => declared(params) }
18
+ { 'declared_params' => declared(params) }
19
19
  end
20
20
 
21
21
  desc 'Get booking details by access_number'
22
22
  get '/conf/:access_number' do
23
- { "declared_params" => declared(params) }
23
+ { 'declared_params' => declared(params) }
24
24
  end
25
25
 
26
26
  desc 'Remove booking'
27
27
  delete ':id' do
28
- { "declared_params" => declared(params) }
28
+ { 'declared_params' => declared(params) }
29
29
  end
30
30
  end
31
31
 
@@ -44,21 +44,24 @@ describe 'additional parameter settings' do
44
44
  end
45
45
 
46
46
  specify do
47
- expect(subject['paths']['/bookings/{id}']['put']['parameters']).to eql([
48
- {"in"=>"path", "name"=>"id", "description"=>nil, "type"=>"integer", "format"=>"int32", "required"=>true},
49
- {"in"=>"formData", "name"=>"name", "description"=>nil, "type"=>"string", "required"=>false}
50
- ])
47
+ expect(subject['paths']['/bookings/{id}']['put']['parameters'].sort_by { |p| p['name'] }).to eql(
48
+ [
49
+ { 'in' => 'path', 'name' => 'id', 'type' => 'integer', 'format' => 'int32', 'required' => true },
50
+ { 'in' => 'formData', 'name' => 'name', 'type' => 'string', 'required' => false }
51
+ ])
51
52
  end
52
53
 
53
54
  specify do
54
- expect(subject['paths']['/bookings/{id}']['get']['parameters']).to eql([
55
- {"in"=>"path", "name"=>"id", "description"=>nil, "type"=>"integer", "format"=>"int32", "required"=>true}
56
- ])
55
+ expect(subject['paths']['/bookings/{id}']['get']['parameters']).to eql(
56
+ [
57
+ { 'in' => 'path', 'name' => 'id', 'type' => 'integer', 'format' => 'int32', 'required' => true }
58
+ ])
57
59
  end
58
60
 
59
61
  specify do
60
- expect(subject['paths']['/bookings/{id}']['delete']['parameters']).to eql([
61
- {"in"=>"path", "name"=>"id", "description"=>nil, "type"=>"integer", "format"=>"int32", "required"=>true}
62
- ])
62
+ expect(subject['paths']['/bookings/{id}']['delete']['parameters']).to eql(
63
+ [
64
+ { 'in' => 'path', 'name' => 'id', 'type' => 'integer', 'format' => 'int32', 'required' => true }
65
+ ])
63
66
  end
64
67
  end