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,11 +1,9 @@
1
- RSpec.shared_context "namespace example" do
1
+ RSpec.shared_context 'namespace example' do
2
2
  before :all do
3
3
  module TheApi
4
-
5
4
  class CustomType; end
6
5
 
7
6
  class NamespaceApi < Grape::API
8
-
9
7
  namespace :hudson do
10
8
  desc 'Document root'
11
9
  get '/' do
@@ -14,7 +12,7 @@ RSpec.shared_context "namespace example" do
14
12
 
15
13
  namespace :colorado do
16
14
  desc 'This gets something.',
17
- notes: '_test_'
15
+ notes: '_test_'
18
16
 
19
17
  get '/simple' do
20
18
  { bla: 'something' }
@@ -23,7 +21,7 @@ RSpec.shared_context "namespace example" do
23
21
 
24
22
  namespace :colorado do
25
23
  desc 'This gets something for URL using - separator.',
26
- notes: '_test_'
24
+ notes: '_test_'
27
25
 
28
26
  get '/simple-test' do
29
27
  { bla: 'something' }
@@ -32,14 +30,14 @@ RSpec.shared_context "namespace example" do
32
30
 
33
31
  namespace :thames do
34
32
  desc 'this gets something else',
35
- headers: {
36
- 'XAuthToken' => { description: 'A required header.', required: true },
37
- 'XOtherHeader' => { description: 'An optional header.', required: false }
38
- },
39
- http_codes: [
40
- { code: 403, message: 'invalid pony' },
41
- { code: 405, message: 'no ponies left!' }
42
- ]
33
+ headers: {
34
+ 'XAuthToken' => { description: 'A required header.', required: true },
35
+ 'XOtherHeader' => { description: 'An optional header.', required: false }
36
+ },
37
+ http_codes: [
38
+ { code: 403, message: 'invalid pony' },
39
+ { code: 405, message: 'no ponies left!' }
40
+ ]
43
41
 
44
42
  get '/simple_with_headers' do
45
43
  { bla: 'something_else' }
@@ -48,9 +46,9 @@ RSpec.shared_context "namespace example" do
48
46
 
49
47
  namespace :niles do
50
48
  desc 'this takes an array of parameters',
51
- params: {
52
- 'items[]' => { description: 'array of items', is_array: true }
53
- }
49
+ params: {
50
+ 'items[]' => { description: 'array of items', is_array: true }
51
+ }
54
52
 
55
53
  post '/items' do
56
54
  {}
@@ -59,9 +57,9 @@ RSpec.shared_context "namespace example" do
59
57
 
60
58
  namespace :niles do
61
59
  desc 'this uses a custom parameter',
62
- params: {
63
- 'custom' => { type: CustomType, description: 'array of items', is_array: true }
64
- }
60
+ params: {
61
+ 'custom' => { type: CustomType, description: 'array of items', is_array: true }
62
+ }
65
63
 
66
64
  get '/custom' do
67
65
  {}
@@ -1,4 +1,4 @@
1
- RSpec.shared_context "the api entities" do
1
+ RSpec.shared_context 'the api entities' do
2
2
  before :all do
3
3
  module TheApi
4
4
  module Entities
@@ -47,6 +47,4 @@ RSpec.shared_context "the api entities" do
47
47
  end
48
48
  end
49
49
  end
50
-
51
-
52
50
  end
@@ -1,94 +1,104 @@
1
- RSpec.shared_context "the api paths/defs" do
2
- let(:paths) {{
3
- "/in_body" => {
4
- post: {
5
- produces: ["application/json"],
6
- consumes: ["application/json"],
7
- parameters: [
8
- {in: "body", name: "in_body_1", description: "in_body_1", type: "integer", format: "int32", required: true},
9
- {in: "body", name: "in_body_2", description: "in_body_2", type: "string", required: false},
10
- {in: "body", name: "in_body_3", description: "in_body_3", type: "string", required: false}
11
- ],
12
- responses: {201 => {description: "post in body /wo entity", schema: {"$ref" => "#/definitions/InBody"}}},
13
- tags: ["in_body"],
14
- operationId: "postInBody"
15
- },
16
- get: {
17
- produces: ["application/json"],
18
- responses: {200 => {description: "get in path /wo entity", schema: {"$ref" => "#/definitions/InBody"}}},
19
- tags: ["in_body"],
20
- operationId: "getInBody"
21
- }
22
- },
23
- "/in_body/{key}" => {
24
- put: {
25
- produces: ["application/json"],
26
- consumes: ["application/json"],
27
- parameters: [
28
- {in: "path", name: "key", description: nil, type: "integer", format: "int32", required: true},
29
- {in: "body", name: "in_body_1", description: "in_body_1", type: "integer", format: "int32", required: true},
30
- {in: "body", name: "in_body_2", description: "in_body_2", type: "string", required: false},
31
- {in: "body", name: "in_body_3", description: "in_body_3", type: "string", required: false}
32
- ],
33
- responses: {200 => {description: "put in body /wo entity", schema: {"$ref" => "#/definitions/InBody"}}},
34
- tags: ["in_body"],
35
- operationId: "putInBodyKey"
1
+ RSpec.shared_context 'the api paths/defs' do
2
+ let(:paths) do
3
+ {
4
+ '/in_body' => {
5
+ post: {
6
+ produces: ['application/json'],
7
+ consumes: ['application/json'],
8
+ parameters: [
9
+ { in: 'body', name: 'in_body_1', description: 'in_body_1', type: 'integer', format: 'int32', required: true },
10
+ { in: 'body', name: 'in_body_2', description: 'in_body_2', type: 'string', required: false },
11
+ { in: 'body', name: 'in_body_3', description: 'in_body_3', type: 'string', required: false }
12
+ ],
13
+ responses: { 201 => { description: 'post in body /wo entity', schema: { '$ref' => '#/definitions/InBody' } } },
14
+ tags: ['in_body'],
15
+ operationId: 'postInBody'
16
+ },
17
+ get: {
18
+ produces: ['application/json'],
19
+ responses: { 200 => { description: 'get in path /wo entity', schema: { '$ref' => '#/definitions/InBody' } } },
20
+ tags: ['in_body'],
21
+ operationId: 'getInBody'
22
+ }
36
23
  },
37
- get: {
38
- produces: ["application/json"],
24
+ '/in_body/{key}' => {
25
+ put: {
26
+ produces: ['application/json'],
27
+ consumes: ['application/json'],
28
+ parameters: [
29
+ { in: 'path', name: 'key', description: nil, type: 'integer', format: 'int32', required: true },
30
+ { in: 'body', name: 'in_body_1', description: 'in_body_1', type: 'integer', format: 'int32', required: true },
31
+ { in: 'body', name: 'in_body_2', description: 'in_body_2', type: 'string', required: false },
32
+ { in: 'body', name: 'in_body_3', description: 'in_body_3', type: 'string', required: false }
33
+ ],
34
+ responses: { 200 => { description: 'put in body /wo entity', schema: { '$ref' => '#/definitions/InBody' } } },
35
+ tags: ['in_body'],
36
+ operationId: 'putInBodyKey'
37
+ },
38
+ get: {
39
+ produces: ['application/json'],
40
+ parameters: [
41
+ { in: 'path', name: 'key', description: nil, type: 'integer', format: 'int32', required: true }
42
+ ],
43
+ responses: { 200 => { description: 'get in path /wo entity', schema: { '$ref' => '#/definitions/InBody' } } },
44
+ tags: ['in_body'],
45
+ operationId: 'getInBodyKey'
46
+ } }
47
+ }
48
+ end
49
+
50
+ let(:found_path) do
51
+ {
52
+ post: {
53
+ produces: ['application/json'],
54
+ consumes: ['application/json'],
39
55
  parameters: [
40
- {in: "path", name: "key", description: nil, type: "integer", format: "int32", required: true}
56
+ { in: 'body', name: 'in_body_1', description: 'in_body_1', type: 'integer', format: 'int32', required: true },
57
+ { in: 'body', name: 'in_body_2', description: 'in_body_2', type: 'string', required: false },
58
+ { in: 'body', name: 'in_body_3', description: 'in_body_3', type: 'string', required: false }
41
59
  ],
42
- responses: {200 => {description: "get in path /wo entity", schema: {"$ref" => "#/definitions/InBody"}}},
43
- tags: ["in_body"],
44
- operationId: "getInBodyKey"
45
- }}
46
- }}
60
+ responses: { 201 => { description: 'post in body /wo entity', schema: { '$ref' => '#/definitions/InBody' } } },
61
+ tags: ['in_body'],
62
+ operationId: 'postInBody'
63
+ } }
64
+ end
47
65
 
48
- let(:found_path) {{
49
- post: {
50
- produces: ["application/json"],
51
- consumes: ["application/json"],
52
- parameters: [
53
- {in: "body", name: "in_body_1", description: "in_body_1", type: "integer", format: "int32", required: true},
54
- {in: "body", name: "in_body_2", description: "in_body_2", type: "string", required: false},
55
- {in: "body", name: "in_body_3", description: "in_body_3", type: "string", required: false}
56
- ],
57
- responses: {201 => {description: "post in body /wo entity", schema: {"$ref"=>"#/definitions/InBody"}}},
58
- tags: ["in_body"],
59
- operationId: "postInBody"
60
- }}}
66
+ let(:definitions) do
67
+ {
68
+ 'InBody' => {
69
+ type: 'object',
70
+ properties: {
71
+ in_body_1: { type: 'integer', format: 'int32' },
72
+ in_body_2: { type: 'string' },
73
+ in_body_3: { type: 'string' },
74
+ key: { type: 'integer', format: 'int32' }
75
+ } } }
76
+ end
61
77
 
62
- let(:definitions) {{
63
- "InBody" => {
64
- type: "object",
78
+ let(:expected_post_defs) do
79
+ {
80
+ type: 'object',
65
81
  properties: {
66
- in_body_1: {type: "integer", format: "int32"},
67
- in_body_2: {type: "string"},
68
- in_body_3: {type: "string"},
69
- key: {type: "integer", format: "int32"}
70
- }}}}
71
-
72
- let(:expected_post_defs) {{
73
- type: "object",
74
- properties: {
75
- in_body_1: {type: "integer", format: "int32", description: "in_body_1"},
76
- in_body_2: {type: "string", description: "in_body_2"},
77
- in_body_3: {type: "string", description: "in_body_3"}
78
- },
79
- :required=>[:in_body_1]
80
- }}
82
+ in_body_1: { type: 'integer', format: 'int32', description: 'in_body_1' },
83
+ in_body_2: { type: 'string', description: 'in_body_2' },
84
+ in_body_3: { type: 'string', description: 'in_body_3' }
85
+ },
86
+ required: [:in_body_1]
87
+ }
88
+ end
81
89
 
82
- let(:expected_put_defs) {{
83
- type: "object",
84
- properties: {
85
- in_body_1: {type: "integer", format: "int32", description: "in_body_1"},
86
- in_body_2: {type: "string", description: "in_body_2"},
87
- in_body_3: {type: "string", description: "in_body_3"},
88
- key: {type: "integer", format: "int32", readOnly: true}
89
- },
90
- :required=>[:in_body_1]
91
- }}
90
+ let(:expected_put_defs) do
91
+ {
92
+ type: 'object',
93
+ properties: {
94
+ in_body_1: { type: 'integer', format: 'int32', description: 'in_body_1' },
95
+ in_body_2: { type: 'string', description: 'in_body_2' },
96
+ in_body_3: { type: 'string', description: 'in_body_3' },
97
+ key: { type: 'integer', format: 'int32', readOnly: true }
98
+ },
99
+ required: [:in_body_1]
100
+ }
101
+ end
92
102
 
93
- let(:expected_path) {[]}
103
+ let(:expected_path) { [] }
94
104
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'definitions/models' do
4
- include_context "the api entities"
4
+ include_context 'the api entities'
5
5
 
6
6
  before :all do
7
7
  module TheApi
@@ -3,7 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  def details
6
- <<-DETAILS
6
+ <<-DETAILS
7
7
  # Burgers in Heaven
8
8
 
9
9
  > A burger doesn't come for free
@@ -23,8 +23,8 @@ DETAILS
23
23
  end
24
24
 
25
25
  describe 'details' do
26
- describe "take deatils as it is" do
27
- include_context "the api entities"
26
+ describe 'take deatils as it is' do
27
+ include_context 'the api entities'
28
28
 
29
29
  before :all do
30
30
  module TheApi
@@ -32,20 +32,20 @@ describe 'details' do
32
32
  format :json
33
33
 
34
34
  desc 'This returns something',
35
- detail: 'detailed description of the route',
36
- entity: Entities::UseResponse,
37
- failure: [{code: 400, model: Entities::ApiError}]
35
+ detail: 'detailed description of the route',
36
+ entity: Entities::UseResponse,
37
+ failure: [{ code: 400, model: Entities::ApiError }]
38
38
  get '/use_detail' do
39
- { "declared_params" => declared(params) }
39
+ { 'declared_params' => declared(params) }
40
40
  end
41
41
 
42
42
  desc 'This returns something' do
43
43
  detail 'detailed description of the route inside the `desc` block'
44
44
  entity Entities::UseResponse
45
- failure [{code: 400, model: Entities::ApiError}]
45
+ failure [{ code: 400, model: Entities::ApiError }]
46
46
  end
47
47
  get '/use_detail_block' do
48
- { "declared_params" => declared(params) }
48
+ { 'declared_params' => declared(params) }
49
49
  end
50
50
 
51
51
  add_swagger_documentation
@@ -74,7 +74,7 @@ describe 'details' do
74
74
  end
75
75
 
76
76
  describe 'details, convert markdown with kramdown' do
77
- include_context "the api entities"
77
+ include_context 'the api entities'
78
78
 
79
79
  before :all do
80
80
  module TheApi
@@ -82,11 +82,11 @@ describe 'details' do
82
82
  format :json
83
83
 
84
84
  desc 'This returns something',
85
- detail: details,
86
- entity: Entities::UseResponse,
87
- failure: [{code: 400, model: Entities::ApiError}]
85
+ detail: details,
86
+ entity: Entities::UseResponse,
87
+ failure: [{ code: 400, model: Entities::ApiError }]
88
88
  get '/use_gfm_detail' do
89
- { "declared_params" => declared(params) }
89
+ { 'declared_params' => declared(params) }
90
90
  end
91
91
 
92
92
  add_swagger_documentation markdown: GrapeSwagger::Markdown::KramdownAdapter.new
@@ -112,7 +112,7 @@ describe 'details' do
112
112
  end
113
113
 
114
114
  describe 'details, convert markdown with redcarpet', unless: RUBY_PLATFORM.eql?('java') do
115
- include_context "the api entities"
115
+ include_context 'the api entities'
116
116
 
117
117
  before :all do
118
118
  module TheApi
@@ -120,11 +120,11 @@ describe 'details' do
120
120
  format :json
121
121
 
122
122
  desc 'This returns something',
123
- detail: details,
124
- entity: Entities::UseResponse,
125
- failure: [{code: 400, model: Entities::ApiError}]
123
+ detail: details,
124
+ entity: Entities::UseResponse,
125
+ failure: [{ code: 400, model: Entities::ApiError }]
126
126
  get '/use_gfm_rc_detail' do
127
- { "declared_params" => declared(params) }
127
+ { 'declared_params' => declared(params) }
128
128
  end
129
129
 
130
130
  add_swagger_documentation markdown: GrapeSwagger::Markdown::RedcarpetAdapter.new
@@ -1,50 +1,50 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'extension' 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 ExtensionsApi < Grape::API
9
9
  format :json
10
10
 
11
- route_setting :x_path, { some: 'stuff' }
11
+ route_setting :x_path, some: 'stuff'
12
12
 
13
13
  desc 'This returns something with extension on path level',
14
- params: Entities::UseResponse.documentation,
15
- failure: [{code: 400, message: 'NotFound', model: Entities::ApiError}]
14
+ params: Entities::UseResponse.documentation,
15
+ failure: [{ code: 400, message: 'NotFound', model: Entities::ApiError }]
16
16
  get '/path_extension' do
17
- { "declared_params" => declared(params) }
17
+ { 'declared_params' => declared(params) }
18
18
  end
19
19
 
20
20
  desc 'This returns something with extension on verb level',
21
- params: Entities::UseResponse.documentation,
22
- failure: [{code: 400, message: 'NotFound', model: Entities::ApiError}],
23
- x: { some: 'stuff' }
21
+ params: Entities::UseResponse.documentation,
22
+ failure: [{ code: 400, message: 'NotFound', model: Entities::ApiError }],
23
+ x: { some: 'stuff' }
24
24
  params do
25
25
  requires :id, type: Integer
26
26
  end
27
27
  get '/verb_extension' do
28
- { "declared_params" => declared(params) }
28
+ { 'declared_params' => declared(params) }
29
29
  end
30
30
 
31
- route_setting :x_def, { for: 200, some: 'stuff' }
31
+ route_setting :x_def, for: 200, some: 'stuff'
32
32
 
33
33
  desc 'This returns something with extension on definition level',
34
- params: Entities::ResponseItem.documentation,
35
- success: Entities::ResponseItem,
36
- failure: [{code: 400, message: 'NotFound', model: Entities::ApiError}]
34
+ params: Entities::ResponseItem.documentation,
35
+ success: Entities::ResponseItem,
36
+ failure: [{ code: 400, message: 'NotFound', model: Entities::ApiError }]
37
37
  get '/definitions_extension' do
38
- { "declared_params" => declared(params) }
38
+ { 'declared_params' => declared(params) }
39
39
  end
40
40
 
41
41
  route_setting :x_def, [{ for: 422, other: 'stuff' }, { for: 200, some: 'stuff' }]
42
42
 
43
43
  desc 'This returns something with extension on definition level',
44
- success: Entities::OtherItem,
45
- failure: [{code: 422, message: 'NotFound', model: Entities::SecondApiError}]
44
+ success: Entities::OtherItem,
45
+ failure: [{ code: 422, message: 'NotFound', model: Entities::SecondApiError }]
46
46
  get '/multiple_definitions_extension' do
47
- { "declared_params" => declared(params) }
47
+ { 'declared_params' => declared(params) }
48
48
  end
49
49
 
50
50
  add_swagger_documentation
@@ -56,7 +56,7 @@ describe 'extension' do
56
56
  TheApi::ExtensionsApi
57
57
  end
58
58
 
59
- describe "extension on path level" do
59
+ describe 'extension on path level' do
60
60
  subject do
61
61
  get '/swagger_doc/path_extension'
62
62
  JSON.parse(last_response.body)
@@ -68,7 +68,7 @@ describe 'extension' do
68
68
  end
69
69
  end
70
70
 
71
- describe "extension on verb level" do
71
+ describe 'extension on verb level' do
72
72
  subject do
73
73
  get '/swagger_doc/verb_extension'
74
74
  JSON.parse(last_response.body)
@@ -80,7 +80,7 @@ describe 'extension' do
80
80
  end
81
81
  end
82
82
 
83
- describe "extension on definition level" do
83
+ describe 'extension on definition level' do
84
84
  subject do
85
85
  get '/swagger_doc/definitions_extension'
86
86
  JSON.parse(last_response.body)
@@ -93,7 +93,7 @@ describe 'extension' do
93
93
  end
94
94
  end
95
95
 
96
- describe "extension on definition level" do
96
+ describe 'extension on definition level' do
97
97
  subject do
98
98
  get '/swagger_doc/multiple_definitions_extension'
99
99
  JSON.parse(last_response.body)