grape 1.2.2 → 1.2.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.
@@ -34,7 +34,6 @@ module Grape
34
34
  autoload :Namespace
35
35
 
36
36
  autoload :Path
37
-
38
37
  autoload :Cookies
39
38
  autoload :Validations
40
39
  autoload :ErrorFormatter
@@ -194,6 +193,7 @@ module Grape
194
193
  end
195
194
  end
196
195
 
196
+ require 'grape/config'
197
197
  require 'grape/util/content_types'
198
198
 
199
199
  require 'grape/validations/validators/base'
@@ -207,6 +207,7 @@ require 'grape/validations/validators/exactly_one_of'
207
207
  require 'grape/validations/validators/mutual_exclusion'
208
208
  require 'grape/validations/validators/presence'
209
209
  require 'grape/validations/validators/regexp'
210
+ require 'grape/validations/validators/same_as'
210
211
  require 'grape/validations/validators/values'
211
212
  require 'grape/validations/validators/except_values'
212
213
  require 'grape/validations/params_scope'
@@ -0,0 +1,32 @@
1
+ module Grape
2
+ module Config
3
+ class Configuration
4
+ ATTRIBUTES = %i[
5
+ param_builder
6
+ ].freeze
7
+
8
+ attr_accessor(*ATTRIBUTES)
9
+
10
+ def initialize
11
+ reset
12
+ end
13
+
14
+ def reset
15
+ self.param_builder = Grape::Extensions::ActiveSupport::HashWithIndifferentAccess::ParamBuilder
16
+ end
17
+ end
18
+
19
+ def self.extended(base)
20
+ def base.configure
21
+ block_given? ? yield(config) : config
22
+ end
23
+
24
+ def base.config
25
+ @configuration ||= Grape::Config::Configuration.new
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ Grape.extend Grape::Config
32
+ Grape.config.reset
@@ -258,6 +258,7 @@ module Grape
258
258
  else
259
259
  run_filters before_validations, :before_validation
260
260
  run_validators validations, request
261
+ remove_aliased_params
261
262
  run_filters after_validations, :after_validation
262
263
  response_object = @block ? @block.call(self) : nil
263
264
  end
@@ -319,7 +320,14 @@ module Grape
319
320
  Module.new { helpers.each { |mod_to_include| include mod_to_include } }
320
321
  end
321
322
 
322
- private :build_stack, :build_helpers
323
+ def remove_aliased_params
324
+ return unless route_setting(:aliased_params)
325
+ route_setting(:aliased_params).flat_map(&:keys).each do |aliased_param|
326
+ @params.delete(aliased_param)
327
+ end
328
+ end
329
+
330
+ private :build_stack, :build_helpers, :remove_aliased_params
323
331
 
324
332
  def helpers
325
333
  lazy_initialize! && @helpers
@@ -9,6 +9,7 @@ en:
9
9
  blank: 'is empty'
10
10
  values: 'does not have a valid value'
11
11
  except_values: 'has a value not allowed'
12
+ same_as: 'is not the same as %{parameter}'
12
13
  missing_vendor_option:
13
14
  problem: 'missing :vendor option.'
14
15
  summary: 'when version using header, you must specify :vendor option. '
@@ -5,7 +5,7 @@ module Grape
5
5
  alias rack_params params
6
6
 
7
7
  def initialize(env, options = {})
8
- extend options[:build_params_with] || Grape::Extensions::ActiveSupport::HashWithIndifferentAccess::ParamBuilder
8
+ extend options[:build_params_with] || Grape.config.param_builder
9
9
  super(env)
10
10
  end
11
11
 
@@ -19,7 +19,7 @@ module Grape
19
19
  # Rack::Request creates a Hash with filename,
20
20
  # content type and an IO object. Do a bit of basic
21
21
  # duck-typing.
22
- value.is_a?(::Hash) && value.key?(:tempfile)
22
+ value.is_a?(::Hash) && value.key?(:tempfile) && value[:tempfile].is_a?(Tempfile)
23
23
  end
24
24
  end
25
25
  end
@@ -8,7 +8,6 @@ module Grape
8
8
 
9
9
  def validate_param!(attr_name, params)
10
10
  params[@alias] = params[attr_name]
11
- params.delete(attr_name)
12
11
  end
13
12
  end
14
13
  end
@@ -0,0 +1,23 @@
1
+ module Grape
2
+ module Validations
3
+ class SameAsValidator < Base
4
+ def validate_param!(attr_name, params)
5
+ confirmation = options_key?(:value) ? @option[:value] : @option
6
+ return if params[attr_name] == params[confirmation]
7
+ raise Grape::Exceptions::Validation,
8
+ params: [@scope.full_name(attr_name)],
9
+ message: build_message
10
+ end
11
+
12
+ private
13
+
14
+ def build_message
15
+ if options_key?(:message)
16
+ @option[:message]
17
+ else
18
+ format I18n.t(:same_as, scope: 'grape.errors.messages'), parameter: @option
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,4 +1,4 @@
1
1
  module Grape
2
2
  # The current version of Grape.
3
- VERSION = '1.2.2'.freeze
3
+ VERSION = '1.2.3'.freeze
4
4
  end
Binary file
Binary file
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe '.configure' do
4
+ before do
5
+ Grape.configure do |config|
6
+ config.param_builder = 42
7
+ end
8
+ end
9
+
10
+ after do
11
+ Grape.config.reset
12
+ end
13
+
14
+ it 'is configured to the new value' do
15
+ expect(Grape.config.param_builder).to eq 42
16
+ end
17
+ end
@@ -62,6 +62,30 @@ module Grape
62
62
  end
63
63
  end
64
64
 
65
+ describe 'when the param_builder is set to Hashie' do
66
+ before do
67
+ Grape.configure do |config|
68
+ config.param_builder = Grape::Extensions::Hashie::Mash::ParamBuilder
69
+ end
70
+ end
71
+
72
+ after do
73
+ Grape.config.reset
74
+ end
75
+
76
+ subject(:request_params) { Grape::Request.new(env, opts).params }
77
+
78
+ context 'when the API does not include a specific param builder' do
79
+ let(:opts) { {} }
80
+ it { is_expected.to be_a(Hashie::Mash) }
81
+ end
82
+
83
+ context 'when the API includes a specific param builder' do
84
+ let(:opts) { { build_params_with: Grape::Extensions::Hash::ParamBuilder } }
85
+ it { is_expected.to be_a(Hash) }
86
+ end
87
+ end
88
+
65
89
  describe '#headers' do
66
90
  let(:options) do
67
91
  default_options.merge(request_headers)
@@ -155,6 +155,16 @@ describe Grape::Validations::ParamsScope do
155
155
  expect(last_response.status).to eq(400)
156
156
  expect(last_response.body).to eq('foo is empty')
157
157
  end
158
+
159
+ it do
160
+ subject.params do
161
+ requires :foo, as: :bar, allow_blank: false
162
+ end
163
+ subject.get('/alias-not-blank-with-value') {}
164
+ get '/alias-not-blank-with-value', foo: 'any'
165
+
166
+ expect(last_response.status).to eq(200)
167
+ end
158
168
  end
159
169
 
160
170
  context 'array without coerce type explicitly given' do
@@ -397,6 +397,10 @@ describe Grape::Validations::CoerceValidator do
397
397
  post '/upload', file: 'not a file'
398
398
  expect(last_response.status).to eq(400)
399
399
  expect(last_response.body).to eq('file is invalid')
400
+
401
+ post '/upload', file: { filename: 'fake file', tempfile: '/etc/passwd' }
402
+ expect(last_response.status).to eq(400)
403
+ expect(last_response.body).to eq('file is invalid')
400
404
  end
401
405
 
402
406
  it 'Nests integers' do
@@ -0,0 +1,63 @@
1
+ require 'spec_helper'
2
+
3
+ describe Grape::Validations::SameAsValidator do
4
+ module ValidationsSpec
5
+ module SameAsValidatorSpec
6
+ class API < Grape::API
7
+ params do
8
+ requires :password
9
+ requires :password_confirmation, same_as: :password
10
+ end
11
+ post do
12
+ end
13
+
14
+ params do
15
+ requires :password
16
+ requires :password_confirmation, same_as: { value: :password, message: 'not match' }
17
+ end
18
+ post '/custom-message' do
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ def app
25
+ ValidationsSpec::SameAsValidatorSpec::API
26
+ end
27
+
28
+ describe '/' do
29
+ context 'is the same' do
30
+ it do
31
+ post '/', password: '987654', password_confirmation: '987654'
32
+ expect(last_response.status).to eq(201)
33
+ expect(last_response.body).to eq('')
34
+ end
35
+ end
36
+
37
+ context 'is not the same' do
38
+ it do
39
+ post '/', password: '123456', password_confirmation: 'whatever'
40
+ expect(last_response.status).to eq(400)
41
+ expect(last_response.body).to eq('password_confirmation is not the same as password')
42
+ end
43
+ end
44
+ end
45
+
46
+ describe '/custom-message' do
47
+ context 'is the same' do
48
+ it do
49
+ post '/custom-message', password: '987654', password_confirmation: '987654'
50
+ expect(last_response.status).to eq(201)
51
+ expect(last_response.body).to eq('')
52
+ end
53
+ end
54
+
55
+ context 'is not the same' do
56
+ it do
57
+ post '/custom-message', password: '123456', password_confirmation: 'whatever'
58
+ expect(last_response.status).to eq(400)
59
+ expect(last_response.body).to eq('password_confirmation not match')
60
+ end
61
+ end
62
+ end
63
+ end
@@ -20,6 +20,7 @@ RSpec.configure do |config|
20
20
  config.include Rack::Test::Methods
21
21
  config.include Spec::Support::Helpers
22
22
  config.raise_errors_for_deprecations!
23
+ config.filter_run_when_matching :focus
23
24
 
24
25
  config.before(:each) { Grape::Util::InheritableSetting.reset_global! }
25
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Bleigh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-07 00:00:00.000000000 Z
11
+ date: 2019-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -117,17 +117,23 @@ files:
117
117
  - benchmark/simple_with_type_coercer.rb
118
118
  - gemfiles/multi_json.gemfile
119
119
  - gemfiles/multi_xml.gemfile
120
+ - gemfiles/rack_1.5.2.gemfile.lock
120
121
  - gemfiles/rack_edge.gemfile
121
122
  - gemfiles/rails_3.gemfile
123
+ - gemfiles/rails_3.gemfile.lock
122
124
  - gemfiles/rails_4.gemfile
125
+ - gemfiles/rails_4.gemfile.lock
123
126
  - gemfiles/rails_5.gemfile
127
+ - gemfiles/rails_5.gemfile.lock
124
128
  - gemfiles/rails_edge.gemfile
129
+ - gemfiles/rails_edge.gemfile.lock
125
130
  - grape.gemspec
126
131
  - grape.png
127
132
  - lib/grape.rb
128
133
  - lib/grape/api.rb
129
134
  - lib/grape/api/helpers.rb
130
135
  - lib/grape/api/instance.rb
136
+ - lib/grape/config.rb
131
137
  - lib/grape/cookies.rb
132
138
  - lib/grape/dsl/api.rb
133
139
  - lib/grape/dsl/callbacks.rb
@@ -249,11 +255,11 @@ files:
249
255
  - lib/grape/validations/validators/mutual_exclusion.rb
250
256
  - lib/grape/validations/validators/presence.rb
251
257
  - lib/grape/validations/validators/regexp.rb
258
+ - lib/grape/validations/validators/same_as.rb
252
259
  - lib/grape/validations/validators/values.rb
253
260
  - lib/grape/version.rb
254
- - pkg/grape-0.19.1.gem
255
- - pkg/grape-1.0.1.gem
256
- - pkg/grape-1.0.2.gem
261
+ - pkg/grape-1.2.0.gem
262
+ - pkg/grape-1.2.1.gem
257
263
  - spec/grape/api/custom_validations_spec.rb
258
264
  - spec/grape/api/deeply_included_options_spec.rb
259
265
  - spec/grape/api/inherited_helpers_spec.rb
@@ -271,6 +277,7 @@ files:
271
277
  - spec/grape/api/shared_helpers_spec.rb
272
278
  - spec/grape/api_remount_spec.rb
273
279
  - spec/grape/api_spec.rb
280
+ - spec/grape/config_spec.rb
274
281
  - spec/grape/dsl/callbacks_spec.rb
275
282
  - spec/grape/dsl/configuration_spec.rb
276
283
  - spec/grape/dsl/desc_spec.rb
@@ -343,6 +350,7 @@ files:
343
350
  - spec/grape/validations/validators/mutual_exclusion_spec.rb
344
351
  - spec/grape/validations/validators/presence_spec.rb
345
352
  - spec/grape/validations/validators/regexp_spec.rb
353
+ - spec/grape/validations/validators/same_as_spec.rb
346
354
  - spec/grape/validations/validators/values_spec.rb
347
355
  - spec/grape/validations/validators/zh-CN.yml
348
356
  - spec/grape/validations_spec.rb
@@ -376,110 +384,112 @@ required_rubygems_version: !ruby/object:Gem::Requirement
376
384
  version: '0'
377
385
  requirements: []
378
386
  rubyforge_project:
379
- rubygems_version: 2.7.6
387
+ rubygems_version: 2.7.7
380
388
  signing_key:
381
389
  specification_version: 4
382
390
  summary: A simple Ruby framework for building REST-like APIs.
383
391
  test_files:
384
- - spec/spec_helper.rb
385
- - spec/integration/multi_xml/xml_spec.rb
386
- - spec/integration/multi_json/json_spec.rb
387
392
  - spec/shared/versioning_examples.rb
388
- - spec/support/basic_auth_encode_helpers.rb
389
- - spec/support/endpoint_faker.rb
390
- - spec/support/file_streamer.rb
391
- - spec/support/versioned_helpers.rb
392
- - spec/support/content_type_helpers.rb
393
- - spec/support/integer_helpers.rb
393
+ - spec/grape/api/shared_helpers_exactly_one_of_spec.rb
394
+ - spec/grape/api/custom_validations_spec.rb
395
+ - spec/grape/api/parameters_modification_spec.rb
396
+ - spec/grape/api/namespace_parameters_in_route_spec.rb
397
+ - spec/grape/api/deeply_included_options_spec.rb
398
+ - spec/grape/api/shared_helpers_spec.rb
399
+ - spec/grape/api/required_parameters_with_invalid_method_spec.rb
400
+ - spec/grape/api/inherited_helpers_spec.rb
401
+ - spec/grape/api/recognize_path_spec.rb
402
+ - spec/grape/api/required_parameters_in_route_spec.rb
403
+ - spec/grape/api/nested_helpers_spec.rb
404
+ - spec/grape/api/routes_with_requirements_spec.rb
405
+ - spec/grape/api/patch_method_helpers_spec.rb
406
+ - spec/grape/api/optional_parameters_in_route_spec.rb
407
+ - spec/grape/api/invalid_format_spec.rb
408
+ - spec/grape/named_api_spec.rb
409
+ - spec/grape/exceptions/validation_spec.rb
410
+ - spec/grape/exceptions/validation_errors_spec.rb
411
+ - spec/grape/exceptions/missing_option_spec.rb
412
+ - spec/grape/exceptions/unknown_options_spec.rb
413
+ - spec/grape/exceptions/missing_mime_type_spec.rb
414
+ - spec/grape/exceptions/base_spec.rb
415
+ - spec/grape/exceptions/invalid_versioner_option_spec.rb
416
+ - spec/grape/exceptions/invalid_response_spec.rb
417
+ - spec/grape/exceptions/body_parse_errors_spec.rb
418
+ - spec/grape/exceptions/unknown_validator_spec.rb
419
+ - spec/grape/exceptions/invalid_formatter_spec.rb
420
+ - spec/grape/exceptions/invalid_accept_header_spec.rb
421
+ - spec/grape/dsl/routing_spec.rb
422
+ - spec/grape/dsl/logger_spec.rb
423
+ - spec/grape/dsl/request_response_spec.rb
424
+ - spec/grape/dsl/validations_spec.rb
425
+ - spec/grape/dsl/desc_spec.rb
426
+ - spec/grape/dsl/headers_spec.rb
427
+ - spec/grape/dsl/configuration_spec.rb
428
+ - spec/grape/dsl/settings_spec.rb
429
+ - spec/grape/dsl/callbacks_spec.rb
430
+ - spec/grape/dsl/parameters_spec.rb
431
+ - spec/grape/dsl/inside_route_spec.rb
432
+ - spec/grape/dsl/middleware_spec.rb
433
+ - spec/grape/dsl/helpers_spec.rb
434
+ - spec/grape/endpoint_spec.rb
435
+ - spec/grape/validations_spec.rb
436
+ - spec/grape/entity_spec.rb
437
+ - spec/grape/extensions/param_builders/hash_spec.rb
438
+ - spec/grape/extensions/param_builders/hash_with_indifferent_access_spec.rb
439
+ - spec/grape/extensions/param_builders/hashie/mash_spec.rb
440
+ - spec/grape/api_remount_spec.rb
441
+ - spec/grape/parser_spec.rb
442
+ - spec/grape/util/inheritable_setting_spec.rb
443
+ - spec/grape/util/reverse_stackable_values_spec.rb
444
+ - spec/grape/util/stackable_values_spec.rb
445
+ - spec/grape/util/inheritable_values_spec.rb
446
+ - spec/grape/util/strict_hash_configuration_spec.rb
447
+ - spec/grape/config_spec.rb
448
+ - spec/grape/presenters/presenter_spec.rb
449
+ - spec/grape/middleware/versioner/header_spec.rb
450
+ - spec/grape/middleware/versioner/accept_version_header_spec.rb
451
+ - spec/grape/middleware/versioner/param_spec.rb
452
+ - spec/grape/middleware/versioner/path_spec.rb
394
453
  - spec/grape/middleware/error_spec.rb
395
454
  - spec/grape/middleware/globals_spec.rb
455
+ - spec/grape/middleware/base_spec.rb
396
456
  - spec/grape/middleware/formatter_spec.rb
457
+ - spec/grape/middleware/exception_spec.rb
458
+ - spec/grape/middleware/auth/base_spec.rb
397
459
  - spec/grape/middleware/auth/strategies_spec.rb
398
460
  - spec/grape/middleware/auth/dsl_spec.rb
399
- - spec/grape/middleware/auth/base_spec.rb
400
461
  - spec/grape/middleware/stack_spec.rb
401
- - spec/grape/middleware/exception_spec.rb
402
462
  - spec/grape/middleware/versioner_spec.rb
403
- - spec/grape/middleware/versioner/accept_version_header_spec.rb
404
- - spec/grape/middleware/versioner/header_spec.rb
405
- - spec/grape/middleware/versioner/path_spec.rb
406
- - spec/grape/middleware/versioner/param_spec.rb
407
- - spec/grape/middleware/base_spec.rb
408
- - spec/grape/loading_spec.rb
409
- - spec/grape/endpoint_spec.rb
410
- - spec/grape/api_spec.rb
411
- - spec/grape/util/reverse_stackable_values_spec.rb
412
- - spec/grape/util/stackable_values_spec.rb
413
- - spec/grape/util/inheritable_setting_spec.rb
414
- - spec/grape/util/strict_hash_configuration_spec.rb
415
- - spec/grape/util/inheritable_values_spec.rb
463
+ - spec/grape/request_spec.rb
464
+ - spec/grape/integration/global_namespace_function_spec.rb
416
465
  - spec/grape/integration/rack_spec.rb
417
466
  - spec/grape/integration/rack_sendfile_spec.rb
418
- - spec/grape/integration/global_namespace_function_spec.rb
419
- - spec/grape/validations_spec.rb
420
- - spec/grape/entity_spec.rb
421
- - spec/grape/exceptions/validation_spec.rb
422
- - spec/grape/exceptions/invalid_accept_header_spec.rb
423
- - spec/grape/exceptions/missing_option_spec.rb
424
- - spec/grape/exceptions/invalid_response_spec.rb
425
- - spec/grape/exceptions/body_parse_errors_spec.rb
426
- - spec/grape/exceptions/invalid_formatter_spec.rb
427
- - spec/grape/exceptions/missing_mime_type_spec.rb
428
- - spec/grape/exceptions/unknown_options_spec.rb
429
- - spec/grape/exceptions/validation_errors_spec.rb
430
- - spec/grape/exceptions/unknown_validator_spec.rb
431
- - spec/grape/exceptions/invalid_versioner_option_spec.rb
432
- - spec/grape/exceptions/base_spec.rb
433
- - spec/grape/presenters/presenter_spec.rb
434
467
  - spec/grape/validations/attributes_iterator_spec.rb
435
- - spec/grape/validations/params_scope_spec.rb
436
- - spec/grape/validations/instance_behaivour_spec.rb
437
- - spec/grape/validations/types_spec.rb
438
- - spec/grape/validations/validators/regexp_spec.rb
439
- - spec/grape/validations/validators/mutual_exclusion_spec.rb
440
468
  - spec/grape/validations/validators/exactly_one_of_spec.rb
441
- - spec/grape/validations/validators/except_values_spec.rb
442
- - spec/grape/validations/validators/presence_spec.rb
443
- - spec/grape/validations/validators/all_or_none_spec.rb
444
- - spec/grape/validations/validators/allow_blank_spec.rb
445
- - spec/grape/validations/validators/default_spec.rb
446
469
  - spec/grape/validations/validators/values_spec.rb
447
- - spec/grape/validations/validators/at_least_one_of_spec.rb
470
+ - spec/grape/validations/validators/presence_spec.rb
448
471
  - spec/grape/validations/validators/coerce_spec.rb
472
+ - spec/grape/validations/validators/at_least_one_of_spec.rb
473
+ - spec/grape/validations/validators/same_as_spec.rb
449
474
  - spec/grape/validations/validators/zh-CN.yml
450
- - spec/grape/extensions/param_builders/hashie/mash_spec.rb
451
- - spec/grape/extensions/param_builders/hash_spec.rb
452
- - spec/grape/extensions/param_builders/hash_with_indifferent_access_spec.rb
453
- - spec/grape/parser_spec.rb
454
- - spec/grape/request_spec.rb
455
- - spec/grape/api/parameters_modification_spec.rb
456
- - spec/grape/api/patch_method_helpers_spec.rb
457
- - spec/grape/api/required_parameters_with_invalid_method_spec.rb
458
- - spec/grape/api/nested_helpers_spec.rb
459
- - spec/grape/api/invalid_format_spec.rb
460
- - spec/grape/api/required_parameters_in_route_spec.rb
461
- - spec/grape/api/namespace_parameters_in_route_spec.rb
462
- - spec/grape/api/recognize_path_spec.rb
463
- - spec/grape/api/shared_helpers_exactly_one_of_spec.rb
464
- - spec/grape/api/inherited_helpers_spec.rb
465
- - spec/grape/api/shared_helpers_spec.rb
466
- - spec/grape/api/deeply_included_options_spec.rb
467
- - spec/grape/api/routes_with_requirements_spec.rb
468
- - spec/grape/api/custom_validations_spec.rb
469
- - spec/grape/api/optional_parameters_in_route_spec.rb
470
- - spec/grape/api_remount_spec.rb
471
- - spec/grape/named_api_spec.rb
472
- - spec/grape/dsl/request_response_spec.rb
473
- - spec/grape/dsl/desc_spec.rb
474
- - spec/grape/dsl/logger_spec.rb
475
- - spec/grape/dsl/configuration_spec.rb
476
- - spec/grape/dsl/validations_spec.rb
477
- - spec/grape/dsl/parameters_spec.rb
478
- - spec/grape/dsl/helpers_spec.rb
479
- - spec/grape/dsl/middleware_spec.rb
480
- - spec/grape/dsl/headers_spec.rb
481
- - spec/grape/dsl/callbacks_spec.rb
482
- - spec/grape/dsl/settings_spec.rb
483
- - spec/grape/dsl/routing_spec.rb
484
- - spec/grape/dsl/inside_route_spec.rb
475
+ - spec/grape/validations/validators/default_spec.rb
476
+ - spec/grape/validations/validators/regexp_spec.rb
477
+ - spec/grape/validations/validators/all_or_none_spec.rb
478
+ - spec/grape/validations/validators/except_values_spec.rb
479
+ - spec/grape/validations/validators/mutual_exclusion_spec.rb
480
+ - spec/grape/validations/validators/allow_blank_spec.rb
481
+ - spec/grape/validations/params_scope_spec.rb
482
+ - spec/grape/validations/instance_behaivour_spec.rb
483
+ - spec/grape/validations/types_spec.rb
484
+ - spec/grape/api_spec.rb
485
+ - spec/grape/loading_spec.rb
485
486
  - spec/grape/path_spec.rb
487
+ - spec/support/file_streamer.rb
488
+ - spec/support/versioned_helpers.rb
489
+ - spec/support/content_type_helpers.rb
490
+ - spec/support/integer_helpers.rb
491
+ - spec/support/basic_auth_encode_helpers.rb
492
+ - spec/support/endpoint_faker.rb
493
+ - spec/spec_helper.rb
494
+ - spec/integration/multi_json/json_spec.rb
495
+ - spec/integration/multi_xml/xml_spec.rb