grape-swagger 1.3.1 → 1.4.0

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
  SHA256:
3
- metadata.gz: 1d9d2fa1309701cf2c24f0993db15660df9be1c437861529a321e6344390fc90
4
- data.tar.gz: 8e74a44fddb127a89ec914da70de6118a86fe17318fb16e4f68d2761cd69dc1c
3
+ metadata.gz: 2fa0c33214a157ed16d147edc9813bbb6d745498947d211c2eff21ce86b023a6
4
+ data.tar.gz: 27c475b099a28f9b8610ded30906edf1a974825153348d8d590abba13688f29d
5
5
  SHA512:
6
- metadata.gz: 79db26518f7697a7347ad92749eaa14722310e41e395177e839d04bfc5e490026989a687158f89f34ea52a62a390482430d79067aa887f4ef90e95bf991315d7
7
- data.tar.gz: 95e85e0b5d337b53bd4ed260aed3fcaae2acae613fcf337552afe0b4be280da89587351008f1f2054440b61e868804c1710340214d2ad80ca4950439af3f5fbe
6
+ metadata.gz: d01c3d660f905522d943bebf2e5a609231bba1938b0cc02c49908048a691a0f0f1baa184ec2fed63d8a72280a92f3aa208273ce64b2bada90b09725cff71b080
7
+ data.tar.gz: 1316664cfc4ec624311e891cd5c4bc106739bc3be9cb363bac02acccaa5e282a9fc1f9012ca590313fef8b74a5d6930a0afda371c05657b271e5ddfaf9e502d4
@@ -0,0 +1,14 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "bundler" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "weekly"
12
+ day: "friday"
13
+ assignees:
14
+ - "LeFnord"
@@ -0,0 +1,26 @@
1
+ name: Rubocop
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - '*'
7
+ pull_request:
8
+ branches:
9
+ - '*'
10
+
11
+ jobs:
12
+ rubocop:
13
+ name: Rubocop
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v2
17
+ - uses: actions/setup-ruby@v1
18
+ with:
19
+ ruby-version: '3.0'
20
+ - run: gem install rubocop --no-doc
21
+ - run: rubocop --format progress --format json --out rubocop.json
22
+ id: rubocop
23
+ - uses: duderman/rubocop-annotate-action@v0.1.0
24
+ with:
25
+ path: rubocop.json
26
+ if: ${{ failure() }}
@@ -0,0 +1,32 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - '*'
7
+ pull_request:
8
+ branches:
9
+ - '*'
10
+
11
+ jobs:
12
+ rspec:
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ matrix:
16
+ ruby-version: ['2.6', '2.7', '3.0']
17
+ grape-version: [1.5.3, 1.4.0, 1.3.3]
18
+ model-parser: [grape-swagger-entity, grape-swagger-representable, '']
19
+
20
+ steps:
21
+ - uses: actions/checkout@v2
22
+ - name: Set up Ruby
23
+ uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
24
+ with:
25
+ ruby-version: ${{ matrix.ruby-version }}
26
+ GRAPE_VERSION: ${{ matrix.grape-version }}
27
+ MODEL_PARSER: ${{ matrix.model-parser }}
28
+ bundler-cache: true
29
+ - name: Run rspec
30
+ run: bundle exec rspec
31
+ - name: Run rubocop
32
+ run: bundle exec rubocop
data/.rubocop.yml CHANGED
@@ -5,7 +5,8 @@ AllCops:
5
5
  - vendor/**/*
6
6
  - example/**/*
7
7
  NewCops: enable
8
- TargetRubyVersion: 2.7
8
+ TargetRubyVersion: 3.0
9
+ SuggestExtensions: false
9
10
 
10
11
  # Layout stuff
11
12
  #
data/CHANGELOG.md CHANGED
@@ -9,6 +9,18 @@
9
9
  * Your contribution here.
10
10
 
11
11
 
12
+ ### 1.4.0 (March 20, 2021)
13
+
14
+ #### Features
15
+
16
+ * [#818](https://github.com/ruby-grape/grape-swagger/pull/818): Adds ruby 3.0 support - [@LeFnord](https://github.com/LeFnord).
17
+ * [#815](https://github.com/ruby-grape/grape-swagger/pull/815): Add required for multiple presents - [@MaximeRDY](https://github.com/MaximeRDY).
18
+
19
+ #### Fixes
20
+
21
+ * [#822](https://github.com/ruby-grape/grape-swagger/pull/822): Corrected the related parameter lookup on request params - [@Jack12816](https://github.com/Jack12816).
22
+
23
+
12
24
  ### 1.3.1 (November 1, 2020)
13
25
 
14
26
  #### Features
data/README.md CHANGED
@@ -451,6 +451,7 @@ add_swagger_documentation \
451
451
  * [Collection Format](#collection-format)
452
452
  * [Hiding parameters](#hiding-parameters)
453
453
  * [Setting a Swagger default value](#default-value)
454
+ * [Example parameter value](#param-example)
454
455
  * [Response documentation](#response)
455
456
  * [Changing default status codes](#change-status)
456
457
  * [File response](#file-response)
@@ -769,8 +770,6 @@ params do
769
770
  end
770
771
  ```
771
772
 
772
- The example parameter will populate the Swagger UI with the example value, and can be used for optional or required parameters.
773
-
774
773
  Grape uses the option `default` to set a default value for optional parameters. This is different in that Grape will set your parameter to the provided default if the parameter is omitted, whereas the example value above will only set the value in the UI itself. This will set the Swagger `defaultValue` to the provided value. Note that the example value will override the Grape default value.
775
774
 
776
775
  ```ruby
@@ -780,6 +779,16 @@ params do
780
779
  end
781
780
  ```
782
781
 
782
+ #### Example parameter value <a name="param-example"></a>
783
+
784
+ The example parameter will populate the Swagger UI with the example value, and can be used for optional or required parameters.
785
+
786
+ ```ruby
787
+ params do
788
+ requires :id, type: Integer, documentation: { example: 123 }
789
+ optional :name, type String, documentation: { example: 'Buddy Guy' }
790
+ end
791
+ ```
783
792
 
784
793
  #### Expose nested namespace as standalone route
785
794
 
@@ -1302,7 +1311,7 @@ You can also specify if the response is an array, with the `is_array` key:
1302
1311
  desc 'Multiple response with array',
1303
1312
  success: [
1304
1313
  { model: Entities::EnumValues, as: :gender },
1305
- { model: Entities::Something, as: :somethings, is_array: true }
1314
+ { model: Entities::Something, as: :somethings, is_array: true, required: true }
1306
1315
  ]
1307
1316
  end
1308
1317
 
@@ -1327,7 +1336,8 @@ The result will look like following:
1327
1336
  "$ref":"#/definitions/Something"
1328
1337
  }
1329
1338
  }
1330
- }
1339
+ },
1340
+ "required": ["somethings"]
1331
1341
  }
1332
1342
  }
1333
1343
  }
data/UPGRADING.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## Upgrading Grape-swagger
2
2
 
3
+ ### Upgrading to >= 1.4.0
4
+
5
+ - Official support for ruby < 2.5 removed, ruby 2.5 only in testing mode, but no support.
6
+
3
7
  ### Upgrading to >= 1.3.0
4
8
 
5
9
  - The model (entity) description no longer comes from the route description. It will have a default value: `<<EntityName>> model`.
@@ -7,13 +7,13 @@ Gem::Specification.new do |s|
7
7
  s.name = 'grape-swagger'
8
8
  s.version = GrapeSwagger::VERSION
9
9
  s.platform = Gem::Platform::RUBY
10
- s.authors = ['Tim Vandecasteele']
11
- s.email = ['tim.vandecasteele@gmail.com']
10
+ s.authors = ['LeFnord', 'Tim Vandecasteele']
11
+ s.email = ['pscholz.le@gmail.com', 'tim.vandecasteele@gmail.com']
12
12
  s.homepage = 'https://github.com/ruby-grape/grape-swagger'
13
13
  s.summary = 'Add auto generated documentation to your Grape API that can be displayed with Swagger.'
14
14
  s.license = 'MIT'
15
15
 
16
- s.required_ruby_version = '>= 2.4'
16
+ s.required_ruby_version = '>= 2.5'
17
17
  s.add_runtime_dependency 'grape', '~> 1.3'
18
18
 
19
19
  s.files = `git ls-files`.split("\n")
@@ -7,7 +7,7 @@ module GrapeSwagger
7
7
  def to_format(parameters)
8
8
  parameters.reject { |parameter| parameter[:in] == 'body' }.each do |b|
9
9
  related_parameters = parameters.select do |p|
10
- p[:name] != b[:name] && p[:name].to_s.include?("#{b[:name].to_s.gsub(/\[\]\z/, '')}[")
10
+ p[:name] != b[:name] && p[:name].to_s.start_with?("#{b[:name].to_s.gsub(/\[\]\z/, '')}[")
11
11
  end
12
12
  parameters.reject! { |p| p[:name] == b[:name] } if move_down(b, related_parameters)
13
13
  end
@@ -27,6 +27,7 @@ module GrapeSwagger
27
27
  document_required(settings)
28
28
  document_additional_properties(settings)
29
29
  document_add_extensions(settings)
30
+ document_example(settings)
30
31
 
31
32
  @parsed_param
32
33
  end
@@ -112,6 +113,11 @@ module GrapeSwagger
112
113
  @parsed_param[:additionalProperties] = additional_properties if additional_properties
113
114
  end
114
115
 
116
+ def document_example(settings)
117
+ example = settings[:example]
118
+ @parsed_param[:example] = example if example
119
+ end
120
+
115
121
  def param_type(value_type)
116
122
  param_type = value_type[:param_type] || value_type[:in]
117
123
  if value_type[:path].include?("{#{value_type[:param_name]}}")
@@ -270,11 +270,18 @@ module Grape
270
270
  def build_memo_schema(memo, route, value, response_model, options)
271
271
  if memo[value[:code]][:schema] && value[:as]
272
272
  memo[value[:code]][:schema][:properties].merge!(build_reference(route, value, response_model, options))
273
+
274
+ if value[:required]
275
+ memo[value[:code]][:schema][:required] ||= []
276
+ memo[value[:code]][:schema][:required] << value[:as].to_s
277
+ end
278
+
273
279
  elsif value[:as]
274
280
  memo[value[:code]][:schema] = {
275
281
  type: :object,
276
282
  properties: build_reference(route, value, response_model, options)
277
283
  }
284
+ memo[value[:code]][:schema][:required] = [value[:as].to_s] if value[:required]
278
285
  else
279
286
  memo[value[:code]][:schema] = build_reference(route, value, response_model, options)
280
287
  end
@@ -322,7 +329,7 @@ module Grape
322
329
  end
323
330
 
324
331
  def file_response?(value)
325
- value.to_s.casecmp('file').zero? ? true : false
332
+ value.to_s.casecmp('file').zero?
326
333
  end
327
334
 
328
335
  def build_file_response(memo)
@@ -413,6 +420,7 @@ module Grape
413
420
  default_code[:headers] = entity[:headers] if entity[:headers]
414
421
  default_code[:as] = entity[:as] if entity[:as]
415
422
  default_code[:is_array] = entity[:is_array] if entity[:is_array]
423
+ default_code[:required] = entity[:required] if entity[:required]
416
424
  else
417
425
  default_code = GrapeSwagger::DocMethods::StatusCodes.get[route.request_method.downcase.to_sym]
418
426
  default_code[:model] = entity if entity
@@ -3,7 +3,9 @@
3
3
  module GrapeSwagger
4
4
  module Errors
5
5
  class UnregisteredParser < StandardError; end
6
+
6
7
  class SwaggerSpec < StandardError; end
8
+
7
9
  class SwaggerSpecDeprecated < SwaggerSpec
8
10
  class << self
9
11
  def tell!(what)
@@ -16,14 +16,14 @@ module GrapeSwagger
16
16
  subhash = @parsers.except(klass).to_a
17
17
  insert_at = subhash.index(subhash.assoc(before_klass))
18
18
  insert_at = subhash.length - 1 if insert_at.nil?
19
- @parsers = Hash[subhash.insert(insert_at, [klass, ancestor])]
19
+ @parsers = subhash.insert(insert_at, [klass, ancestor]).to_h
20
20
  end
21
21
 
22
22
  def insert_after(after_klass, klass, ancestor)
23
23
  subhash = @parsers.except(klass).to_a
24
24
  insert_at = subhash.index(subhash.assoc(after_klass))
25
25
  insert_at = subhash.length - 1 if insert_at.nil?
26
- @parsers = Hash[subhash.insert(insert_at + 1, [klass, ancestor])]
26
+ @parsers = subhash.insert(insert_at + 1, [klass, ancestor]).to_h
27
27
  end
28
28
 
29
29
  def each
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GrapeSwagger
4
- VERSION = '1.3.1'
4
+ VERSION = '1.4.0'
5
5
  end
@@ -11,7 +11,7 @@ describe '#776 multiple presents spec' do
11
11
  desc 'Get multiple presents',
12
12
  success: [
13
13
  { model: Entities::EnumValues, as: :gender },
14
- { model: Entities::Something, as: :somethings, is_array: true }
14
+ { model: Entities::Something, as: :somethings, is_array: true, required: true }
15
15
  ]
16
16
 
17
17
  get do
@@ -50,7 +50,10 @@ describe '#776 multiple presents spec' do
50
50
  '$ref' => '#/definitions/EnumValues'
51
51
  }
52
52
  },
53
- 'type' => 'object'
53
+ 'type' => 'object',
54
+ 'required' => [
55
+ 'somethings'
56
+ ]
54
57
  })
55
58
  end
56
59
  end
@@ -87,5 +87,29 @@ describe GrapeSwagger::DocMethods::FormatData do
87
87
  expect(subject.to_format(params)).to eq expected_params
88
88
  end
89
89
  end
90
+
91
+ context 'when array params are not related' do
92
+ let(:params) do
93
+ [
94
+ { name: 'id', required: true, type: 'string' },
95
+ { name: 'description', required: false, type: 'string' },
96
+ { name: 'ids[]', required: true, type: 'array', items: { type: 'string' } },
97
+ { name: 'user_ids[]', required: true, type: 'array', items: { type: 'string' } }
98
+ ]
99
+ end
100
+
101
+ let(:expected_params) do
102
+ [
103
+ { name: 'id', required: true, type: 'string' },
104
+ { name: 'description', required: false, type: 'string' },
105
+ { name: 'ids[]', required: true, type: 'array', items: { type: 'string' } },
106
+ { name: 'user_ids[]', required: true, type: 'array', items: { type: 'string' } }
107
+ ]
108
+ end
109
+
110
+ it 'parses params correctly and adds array type all concerned elements' do
111
+ expect(subject.to_format(params)).to eq expected_params
112
+ end
113
+ end
90
114
  end
91
115
  end
data/spec/spec_helper.rb CHANGED
@@ -19,7 +19,7 @@ MODEL_PARSER = ENV.key?('MODEL_PARSER') ? ENV['MODEL_PARSER'].to_s.downcase.sub(
19
19
  require 'grape'
20
20
  require 'grape-swagger'
21
21
 
22
- Dir[File.join(Dir.getwd, 'spec/support/*.rb')].sort.each { |f| require f }
22
+ Dir[File.join(Dir.getwd, 'spec/support/*.rb')].each { |f| require f }
23
23
  require "grape-swagger/#{MODEL_PARSER}" if MODEL_PARSER != 'mock'
24
24
  require File.join(Dir.getwd, "spec/support/model_parsers/#{MODEL_PARSER}_parser.rb")
25
25
 
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # rubocop:disable Lint/EmptyClass
3
4
  class EmptyClass
4
5
  end
6
+ # rubocop:enable Lint/EmptyClass
5
7
 
6
8
  module GrapeSwagger
7
9
  class EmptyModelParser
@@ -40,21 +40,37 @@ RSpec.shared_context 'mock swagger example' do
40
40
  end
41
41
 
42
42
  class UseNestedWithAddress < OpenStruct; end
43
+
43
44
  class TypedDefinition < OpenStruct; end
45
+
44
46
  class UseItemResponseAsType < OpenStruct; end
47
+
45
48
  class OtherItem < OpenStruct; end
49
+
46
50
  class EnumValues < OpenStruct; end
51
+
47
52
  class AliasedThing < OpenStruct; end
53
+
48
54
  class FourthLevel < OpenStruct; end
55
+
49
56
  class ThirdLevel < OpenStruct; end
57
+
50
58
  class SecondLevel < OpenStruct; end
59
+
51
60
  class FirstLevel < OpenStruct; end
61
+
52
62
  class QueryInputElement < OpenStruct; end
63
+
53
64
  class QueryInput < OpenStruct; end
65
+
54
66
  class ApiError < OpenStruct; end
67
+
55
68
  class SecondApiError < OpenStruct; end
69
+
56
70
  class RecursiveModel < OpenStruct; end
71
+
57
72
  class DocumentedHashAndArrayModel < OpenStruct; end
73
+
58
74
  module NestedModule
59
75
  class ApiResponse < OpenStruct; end
60
76
  end
@@ -3,7 +3,9 @@
3
3
  RSpec.shared_context 'namespace example' do
4
4
  before :all do
5
5
  module TheApi
6
+ # rubocop:disable Lint/EmptyClass
6
7
  class CustomType; end
8
+ # rubocop:enable Lint/EmptyClass
7
9
 
8
10
  class NamespaceApi < Grape::API
9
11
  namespace :hudson do
@@ -19,7 +19,8 @@ describe 'response with headers' do
19
19
  end
20
20
 
21
21
  desc 'A 204 can have headers too' do
22
- success Hash[status: 204, message: 'No content', headers: { 'Location' => { description: 'Location of resource', type: 'string' } }]
22
+ foo = { status: 204, message: 'No content', headers: { 'Location' => { description: 'Location of resource', type: 'string' } } }
23
+ success foo
23
24
  failure [[400, 'Bad Request', Entities::ApiError, { 'application/json' => { code: 400, message: 'Bad request' } }, { 'Date' => { description: 'Date of failure', type: 'string' } }]]
24
25
  end
25
26
  delete '/no_content_response_headers' do
@@ -27,7 +28,8 @@ describe 'response with headers' do
27
28
  end
28
29
 
29
30
  desc 'A file can have headers too' do
30
- success Hash[status: 200, model: 'File', headers: { 'Cache-Control' => { description: 'Directive for caching', type: 'string' } }]
31
+ foo = { status: 200, model: 'File', headers: { 'Cache-Control': { description: 'Directive for caching', type: 'string' } } }
32
+ success foo
31
33
  failure [[404, 'NotFound', Entities::ApiError, { 'application/json' => { code: 404, message: 'Not found' } }, { 'Date' => { description: 'Date of failure', type: 'string' } }]]
32
34
  end
33
35
  get '/file_response_headers' do
@@ -33,6 +33,7 @@ describe 'Inheritance and Discriminator' do
33
33
  }
34
34
  end
35
35
  end
36
+
36
37
  class NameApi < Grape::API
37
38
  add_swagger_documentation models: [Entities::Pet, Entities::Cat]
38
39
  end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'Param example' do
6
+ def app
7
+ Class.new(Grape::API) do
8
+ format :json
9
+
10
+ params do
11
+ requires :id, type: Integer, documentation: { example: 123 }
12
+ optional :name, type: String, documentation: { example: 'Person' }
13
+ optional :obj, type: 'Object', documentation: { example: { 'foo' => 'bar' } }
14
+ end
15
+
16
+ get '/endpoint_with_examples' do
17
+ { 'declared_params' => declared(params) }
18
+ end
19
+
20
+ add_swagger_documentation
21
+ end
22
+ end
23
+
24
+ describe 'documentation with parameter examples' do
25
+ subject do
26
+ get '/swagger_doc/endpoint_with_examples'
27
+ JSON.parse(last_response.body)
28
+ end
29
+
30
+ specify do
31
+ expect(subject['paths']['/endpoint_with_examples']['get']['parameters']).to eql(
32
+ [
33
+ { 'in' => 'query', 'name' => 'id', 'type' => 'integer', 'example' => 123, 'format' => 'int32', 'required' => true },
34
+ { 'in' => 'query', 'name' => 'name', 'type' => 'string', 'example' => 'Person', 'required' => false },
35
+ { 'in' => 'query', 'name' => 'obj', 'type' => 'Object', 'example' => { 'foo' => 'bar' }, 'required' => false }
36
+ ]
37
+ )
38
+ end
39
+ end
40
+ end
@@ -4,7 +4,9 @@ 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'
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.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
+ - LeFnord
7
8
  - Tim Vandecasteele
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2020-11-01 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
@@ -26,18 +27,21 @@ dependencies:
26
27
  version: '1.3'
27
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
@@ -170,8 +174,9 @@ files:
170
174
  - spec/swagger_v2/param_multi_type_spec.rb
171
175
  - spec/swagger_v2/param_type_spec.rb
172
176
  - spec/swagger_v2/param_values_spec.rb
173
- - spec/swagger_v2/params_array_collection_fromat_spec.rb
177
+ - spec/swagger_v2/params_array_collection_format_spec.rb
174
178
  - spec/swagger_v2/params_array_spec.rb
179
+ - spec/swagger_v2/params_example_spec.rb
175
180
  - spec/swagger_v2/params_hash_spec.rb
176
181
  - spec/swagger_v2/params_nested_spec.rb
177
182
  - spec/swagger_v2/parent_less_namespace_spec.rb
@@ -191,14 +196,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
191
196
  requirements:
192
197
  - - ">="
193
198
  - !ruby/object:Gem::Version
194
- version: '2.4'
199
+ version: '2.5'
195
200
  required_rubygems_version: !ruby/object:Gem::Requirement
196
201
  requirements:
197
202
  - - ">="
198
203
  - !ruby/object:Gem::Version
199
204
  version: '0'
200
205
  requirements: []
201
- rubygems_version: 3.1.4
206
+ rubygems_version: 3.2.3
202
207
  signing_key:
203
208
  specification_version: 4
204
209
  summary: Add auto generated documentation to your Grape API that can be displayed
@@ -297,8 +302,9 @@ test_files:
297
302
  - spec/swagger_v2/param_multi_type_spec.rb
298
303
  - spec/swagger_v2/param_type_spec.rb
299
304
  - spec/swagger_v2/param_values_spec.rb
300
- - spec/swagger_v2/params_array_collection_fromat_spec.rb
305
+ - spec/swagger_v2/params_array_collection_format_spec.rb
301
306
  - spec/swagger_v2/params_array_spec.rb
307
+ - spec/swagger_v2/params_example_spec.rb
302
308
  - spec/swagger_v2/params_hash_spec.rb
303
309
  - spec/swagger_v2/params_nested_spec.rb
304
310
  - spec/swagger_v2/parent_less_namespace_spec.rb
data/.travis.yml DELETED
@@ -1,41 +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.2
15
- env:
16
- - GRAPE_VERSION=1.3.3
17
- - GRAPE_VERSION=1.4.0
18
- - GRAPE_VERSION=1.5.0 MODEL_PARSER=grape-swagger-entity
19
- - GRAPE_VERSION=1.5.0 MODEL_PARSER=grape-swagger-representable
20
- - GRAPE_VERSION=1.5.0
21
- - GRAPE_VERSION=HEAD
22
-
23
- jobs:
24
- fast_finish: true
25
-
26
- include:
27
- - rvm: 2.4.10
28
- env:
29
- - rvm: ruby-head
30
- env:
31
- - rvm: jruby-head
32
- env:
33
- - rvm: truffleruby-head
34
- env:
35
- script: bundle exec rake spec
36
-
37
- allow_failures:
38
- - rvm: 2.4.10
39
- - rvm: ruby-head
40
- - rvm: jruby-head
41
- - rvm: truffleruby-head