grape 1.3.0 → 1.5.0

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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +90 -0
  3. data/LICENSE +1 -1
  4. data/README.md +104 -21
  5. data/UPGRADING.md +243 -39
  6. data/lib/grape.rb +4 -5
  7. data/lib/grape/api.rb +4 -4
  8. data/lib/grape/api/instance.rb +32 -31
  9. data/lib/grape/content_types.rb +34 -0
  10. data/lib/grape/dsl/helpers.rb +2 -1
  11. data/lib/grape/dsl/inside_route.rb +76 -42
  12. data/lib/grape/dsl/parameters.rb +4 -4
  13. data/lib/grape/dsl/routing.rb +8 -8
  14. data/lib/grape/dsl/validations.rb +18 -1
  15. data/lib/grape/eager_load.rb +1 -1
  16. data/lib/grape/endpoint.rb +8 -6
  17. data/lib/grape/exceptions/base.rb +0 -4
  18. data/lib/grape/exceptions/validation_errors.rb +11 -12
  19. data/lib/grape/http/headers.rb +26 -0
  20. data/lib/grape/middleware/base.rb +3 -4
  21. data/lib/grape/middleware/error.rb +10 -12
  22. data/lib/grape/middleware/formatter.rb +3 -3
  23. data/lib/grape/middleware/stack.rb +19 -5
  24. data/lib/grape/middleware/versioner/header.rb +4 -4
  25. data/lib/grape/middleware/versioner/parse_media_type_patch.rb +2 -1
  26. data/lib/grape/middleware/versioner/path.rb +1 -1
  27. data/lib/grape/namespace.rb +12 -2
  28. data/lib/grape/path.rb +13 -3
  29. data/lib/grape/request.rb +13 -8
  30. data/lib/grape/router.rb +26 -30
  31. data/lib/grape/router/attribute_translator.rb +25 -4
  32. data/lib/grape/router/pattern.rb +17 -16
  33. data/lib/grape/router/route.rb +5 -24
  34. data/lib/grape/{serve_file → serve_stream}/file_body.rb +1 -1
  35. data/lib/grape/{serve_file → serve_stream}/sendfile_response.rb +1 -1
  36. data/lib/grape/{serve_file/file_response.rb → serve_stream/stream_response.rb} +8 -8
  37. data/lib/grape/util/base_inheritable.rb +15 -8
  38. data/lib/grape/util/cache.rb +20 -0
  39. data/lib/grape/util/lazy_object.rb +43 -0
  40. data/lib/grape/util/lazy_value.rb +1 -0
  41. data/lib/grape/util/reverse_stackable_values.rb +2 -0
  42. data/lib/grape/util/stackable_values.rb +7 -20
  43. data/lib/grape/validations/params_scope.rb +6 -5
  44. data/lib/grape/validations/types.rb +6 -5
  45. data/lib/grape/validations/types/array_coercer.rb +14 -5
  46. data/lib/grape/validations/types/build_coercer.rb +5 -8
  47. data/lib/grape/validations/types/custom_type_coercer.rb +14 -2
  48. data/lib/grape/validations/types/dry_type_coercer.rb +36 -1
  49. data/lib/grape/validations/types/file.rb +15 -12
  50. data/lib/grape/validations/types/json.rb +40 -36
  51. data/lib/grape/validations/types/primitive_coercer.rb +15 -6
  52. data/lib/grape/validations/types/set_coercer.rb +6 -4
  53. data/lib/grape/validations/types/variant_collection_coercer.rb +1 -1
  54. data/lib/grape/validations/validators/as.rb +1 -1
  55. data/lib/grape/validations/validators/base.rb +2 -4
  56. data/lib/grape/validations/validators/coerce.rb +4 -11
  57. data/lib/grape/validations/validators/default.rb +3 -5
  58. data/lib/grape/validations/validators/exactly_one_of.rb +4 -2
  59. data/lib/grape/validations/validators/except_values.rb +1 -1
  60. data/lib/grape/validations/validators/regexp.rb +1 -1
  61. data/lib/grape/validations/validators/values.rb +1 -1
  62. data/lib/grape/version.rb +1 -1
  63. data/spec/grape/api/instance_spec.rb +50 -0
  64. data/spec/grape/api_spec.rb +82 -6
  65. data/spec/grape/dsl/inside_route_spec.rb +182 -33
  66. data/spec/grape/endpoint/declared_spec.rb +590 -0
  67. data/spec/grape/endpoint_spec.rb +0 -521
  68. data/spec/grape/entity_spec.rb +6 -0
  69. data/spec/grape/exceptions/validation_errors_spec.rb +2 -2
  70. data/spec/grape/integration/rack_sendfile_spec.rb +12 -8
  71. data/spec/grape/middleware/auth/strategies_spec.rb +1 -1
  72. data/spec/grape/middleware/error_spec.rb +1 -1
  73. data/spec/grape/middleware/formatter_spec.rb +3 -3
  74. data/spec/grape/middleware/stack_spec.rb +12 -1
  75. data/spec/grape/path_spec.rb +4 -4
  76. data/spec/grape/validations/instance_behaivour_spec.rb +1 -1
  77. data/spec/grape/validations/params_scope_spec.rb +26 -0
  78. data/spec/grape/validations/types/array_coercer_spec.rb +35 -0
  79. data/spec/grape/validations/types/primitive_coercer_spec.rb +135 -0
  80. data/spec/grape/validations/types/set_coercer_spec.rb +34 -0
  81. data/spec/grape/validations/types_spec.rb +1 -1
  82. data/spec/grape/validations/validators/coerce_spec.rb +329 -77
  83. data/spec/grape/validations/validators/default_spec.rb +170 -0
  84. data/spec/grape/validations/validators/exactly_one_of_spec.rb +12 -12
  85. data/spec/grape/validations/validators/except_values_spec.rb +1 -0
  86. data/spec/grape/validations/validators/values_spec.rb +1 -1
  87. data/spec/grape/validations_spec.rb +30 -30
  88. data/spec/integration/eager_load/eager_load_spec.rb +15 -0
  89. data/spec/spec_helper.rb +3 -10
  90. data/spec/support/chunks.rb +14 -0
  91. data/spec/support/eager_load.rb +19 -0
  92. data/spec/support/versioned_helpers.rb +3 -5
  93. metadata +121 -105
  94. data/lib/grape/util/content_types.rb +0 -28
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
4
+ require 'grape'
5
+
6
+ describe Grape do
7
+ it 'eager_load!' do
8
+ require 'grape/eager_load'
9
+ expect { Grape.eager_load! }.to_not raise_error
10
+ end
11
+
12
+ it 'compile!' do
13
+ expect { Class.new(Grape::API).compile! }.to_not raise_error
14
+ end
15
+ end
@@ -14,25 +14,18 @@ Dir["#{File.dirname(__FILE__)}/support/*.rb"].each do |file|
14
14
  require file
15
15
  end
16
16
 
17
+ eager_load!
18
+
17
19
  # The default value for this setting is true in a standard Rails app,
18
20
  # so it should be set to true here as well to reflect that.
19
21
  I18n.enforce_available_locales = true
20
22
 
21
- module Chunks
22
- def read_chunks(body)
23
- buffer = []
24
- body.each { |chunk| buffer << chunk }
25
-
26
- buffer
27
- end
28
- end
29
-
30
23
  RSpec.configure do |config|
31
- config.include Chunks
32
24
  config.include Rack::Test::Methods
33
25
  config.include Spec::Support::Helpers
34
26
  config.raise_errors_for_deprecations!
35
27
  config.filter_run_when_matching :focus
28
+ config.warnings = true
36
29
 
37
30
  config.before(:each) { Grape::Util::InheritableSetting.reset_global! }
38
31
 
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Chunks
4
+ def read_chunks(body)
5
+ buffer = []
6
+ body.each { |chunk| buffer << chunk }
7
+
8
+ buffer
9
+ end
10
+ end
11
+
12
+ RSpec.configure do |config|
13
+ config.include Chunks
14
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Grape uses autoload https://api.rubyonrails.org/classes/ActiveSupport/Autoload.html.
4
+ # When a class/module get added to the list, ActiveSupport doesn't check whether it really exists.
5
+ # This method loads all classes/modules defined via autoload to be sure only existing
6
+ # classes/modules were listed.
7
+ def eager_load!(scope = Grape)
8
+ # get modules
9
+ scope.constants.each do |const_name|
10
+ const = scope.const_get(const_name)
11
+
12
+ next unless const.respond_to?(:eager_load!)
13
+
14
+ const.eager_load!
15
+
16
+ # check its modules, they might need to be loaded as well.
17
+ eager_load!(const)
18
+ end
19
+ end
@@ -6,7 +6,7 @@ module Spec
6
6
  module Helpers
7
7
  # Returns the path with options[:version] prefixed if options[:using] is :path.
8
8
  # Returns normal path otherwise.
9
- def versioned_path(options = {})
9
+ def versioned_path(**options)
10
10
  case options[:using]
11
11
  when :path
12
12
  File.join('/', options[:prefix] || '', options[:version], options[:path])
@@ -43,13 +43,11 @@ module Spec
43
43
  end
44
44
  end
45
45
 
46
- def versioned_get(path, version_name, version_options = {})
46
+ def versioned_get(path, version_name, **version_options)
47
47
  path = versioned_path(version_options.merge(version: version_name, path: path))
48
48
  headers = versioned_headers(**version_options.merge(version: version_name))
49
49
  params = {}
50
- if version_options[:using] == :param
51
- params = { version_options[:parameter] => version_name }
52
- end
50
+ params = { version_options[:parameter] => version_name } if version_options[:using] == :param
53
51
  get path, params, headers
54
52
  end
55
53
  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.3.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Bleigh
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-11 00:00:00.000000000 Z
11
+ date: 2020-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -113,6 +113,7 @@ files:
113
113
  - lib/grape/api/helpers.rb
114
114
  - lib/grape/api/instance.rb
115
115
  - lib/grape/config.rb
116
+ - lib/grape/content_types.rb
116
117
  - lib/grape/cookies.rb
117
118
  - lib/grape/dsl/api.rb
118
119
  - lib/grape/dsl/callbacks.rb
@@ -196,17 +197,18 @@ files:
196
197
  - lib/grape/router/attribute_translator.rb
197
198
  - lib/grape/router/pattern.rb
198
199
  - lib/grape/router/route.rb
199
- - lib/grape/serve_file/file_body.rb
200
- - lib/grape/serve_file/file_response.rb
201
- - lib/grape/serve_file/sendfile_response.rb
200
+ - lib/grape/serve_stream/file_body.rb
201
+ - lib/grape/serve_stream/sendfile_response.rb
202
+ - lib/grape/serve_stream/stream_response.rb
202
203
  - lib/grape/util/base_inheritable.rb
203
- - lib/grape/util/content_types.rb
204
+ - lib/grape/util/cache.rb
204
205
  - lib/grape/util/endpoint_configuration.rb
205
206
  - lib/grape/util/env.rb
206
207
  - lib/grape/util/inheritable_setting.rb
207
208
  - lib/grape/util/inheritable_values.rb
208
209
  - lib/grape/util/json.rb
209
210
  - lib/grape/util/lazy_block.rb
211
+ - lib/grape/util/lazy_object.rb
210
212
  - lib/grape/util/lazy_value.rb
211
213
  - lib/grape/util/registrable.rb
212
214
  - lib/grape/util/reverse_stackable_values.rb
@@ -280,6 +282,7 @@ files:
280
282
  - spec/grape/dsl/routing_spec.rb
281
283
  - spec/grape/dsl/settings_spec.rb
282
284
  - spec/grape/dsl/validations_spec.rb
285
+ - spec/grape/endpoint/declared_spec.rb
283
286
  - spec/grape/endpoint_spec.rb
284
287
  - spec/grape/entity_spec.rb
285
288
  - spec/grape/exceptions/base_spec.rb
@@ -330,6 +333,9 @@ files:
330
333
  - spec/grape/validations/multiple_attributes_iterator_spec.rb
331
334
  - spec/grape/validations/params_scope_spec.rb
332
335
  - spec/grape/validations/single_attribute_iterator_spec.rb
336
+ - spec/grape/validations/types/array_coercer_spec.rb
337
+ - spec/grape/validations/types/primitive_coercer_spec.rb
338
+ - spec/grape/validations/types/set_coercer_spec.rb
333
339
  - spec/grape/validations/types_spec.rb
334
340
  - spec/grape/validations/validators/all_or_none_spec.rb
335
341
  - spec/grape/validations/validators/allow_blank_spec.rb
@@ -345,12 +351,15 @@ files:
345
351
  - spec/grape/validations/validators/values_spec.rb
346
352
  - spec/grape/validations/validators/zh-CN.yml
347
353
  - spec/grape/validations_spec.rb
354
+ - spec/integration/eager_load/eager_load_spec.rb
348
355
  - spec/integration/multi_json/json_spec.rb
349
356
  - spec/integration/multi_xml/xml_spec.rb
350
357
  - spec/shared/versioning_examples.rb
351
358
  - spec/spec_helper.rb
352
359
  - spec/support/basic_auth_encode_helpers.rb
360
+ - spec/support/chunks.rb
353
361
  - spec/support/content_type_helpers.rb
362
+ - spec/support/eager_load.rb
354
363
  - spec/support/endpoint_faker.rb
355
364
  - spec/support/file_streamer.rb
356
365
  - spec/support/integer_helpers.rb
@@ -360,10 +369,10 @@ licenses:
360
369
  - MIT
361
370
  metadata:
362
371
  bug_tracker_uri: https://github.com/ruby-grape/grape/issues
363
- changelog_uri: https://github.com/ruby-grape/grape/blob/v1.3.0/CHANGELOG.md
364
- documentation_uri: https://www.rubydoc.info/gems/grape/1.3.0
365
- source_code_uri: https://github.com/ruby-grape/grape/tree/v1.3.0
366
- post_install_message:
372
+ changelog_uri: https://github.com/ruby-grape/grape/blob/v1.5.0/CHANGELOG.md
373
+ documentation_uri: https://www.rubydoc.info/gems/grape/1.5.0
374
+ source_code_uri: https://github.com/ruby-grape/grape/tree/v1.5.0
375
+ post_install_message:
367
376
  rdoc_options: []
368
377
  require_paths:
369
378
  - lib
@@ -378,116 +387,123 @@ required_rubygems_version: !ruby/object:Gem::Requirement
378
387
  - !ruby/object:Gem::Version
379
388
  version: '0'
380
389
  requirements: []
381
- rubygems_version: 3.0.3
382
- signing_key:
390
+ rubygems_version: 3.1.3
391
+ signing_key:
383
392
  specification_version: 4
384
393
  summary: A simple Ruby framework for building REST-like APIs.
385
394
  test_files:
395
+ - spec/spec_helper.rb
396
+ - spec/integration/eager_load/eager_load_spec.rb
397
+ - spec/integration/multi_xml/xml_spec.rb
398
+ - spec/integration/multi_json/json_spec.rb
386
399
  - spec/shared/versioning_examples.rb
387
- - spec/support/versioned_helpers.rb
388
- - spec/support/content_type_helpers.rb
389
400
  - spec/support/basic_auth_encode_helpers.rb
390
- - spec/support/file_streamer.rb
391
401
  - spec/support/endpoint_faker.rb
402
+ - spec/support/chunks.rb
403
+ - spec/support/file_streamer.rb
404
+ - spec/support/versioned_helpers.rb
405
+ - spec/support/content_type_helpers.rb
406
+ - spec/support/eager_load.rb
392
407
  - spec/support/integer_helpers.rb
393
- - spec/grape/api/namespace_parameters_in_route_spec.rb
394
- - spec/grape/api/routes_with_requirements_spec.rb
395
- - spec/grape/api/nested_helpers_spec.rb
396
- - spec/grape/api/required_parameters_in_route_spec.rb
397
- - spec/grape/api/shared_helpers_exactly_one_of_spec.rb
398
- - spec/grape/api/parameters_modification_spec.rb
399
- - spec/grape/api/optional_parameters_in_route_spec.rb
400
- - spec/grape/api/inherited_helpers_spec.rb
401
- - spec/grape/api/required_parameters_with_invalid_method_spec.rb
402
- - spec/grape/api/custom_validations_spec.rb
403
- - spec/grape/api/defines_boolean_in_params_spec.rb
404
- - spec/grape/api/shared_helpers_spec.rb
405
- - spec/grape/api/invalid_format_spec.rb
406
- - spec/grape/api/deeply_included_options_spec.rb
407
- - spec/grape/api/instance_spec.rb
408
- - spec/grape/api/patch_method_helpers_spec.rb
409
- - spec/grape/api/recognize_path_spec.rb
410
- - spec/grape/api_remount_spec.rb
411
- - spec/grape/validations/types_spec.rb
412
- - spec/grape/validations/attributes_iterator_spec.rb
413
- - spec/grape/validations/validators/regexp_spec.rb
414
- - spec/grape/validations/validators/default_spec.rb
415
- - spec/grape/validations/validators/values_spec.rb
416
- - spec/grape/validations/validators/same_as_spec.rb
417
- - spec/grape/validations/validators/mutual_exclusion_spec.rb
418
- - spec/grape/validations/validators/except_values_spec.rb
419
- - spec/grape/validations/validators/exactly_one_of_spec.rb
420
- - spec/grape/validations/validators/allow_blank_spec.rb
421
- - spec/grape/validations/validators/coerce_spec.rb
422
- - spec/grape/validations/validators/presence_spec.rb
423
- - spec/grape/validations/validators/at_least_one_of_spec.rb
424
- - spec/grape/validations/validators/zh-CN.yml
425
- - spec/grape/validations/validators/all_or_none_spec.rb
426
- - spec/grape/validations/params_scope_spec.rb
427
- - spec/grape/validations/multiple_attributes_iterator_spec.rb
428
- - spec/grape/validations/instance_behaivour_spec.rb
429
- - spec/grape/validations/single_attribute_iterator_spec.rb
408
+ - spec/grape/middleware/error_spec.rb
409
+ - spec/grape/middleware/globals_spec.rb
410
+ - spec/grape/middleware/formatter_spec.rb
411
+ - spec/grape/middleware/auth/strategies_spec.rb
412
+ - spec/grape/middleware/auth/dsl_spec.rb
413
+ - spec/grape/middleware/auth/base_spec.rb
414
+ - spec/grape/middleware/stack_spec.rb
415
+ - spec/grape/middleware/exception_spec.rb
416
+ - spec/grape/middleware/versioner_spec.rb
417
+ - spec/grape/middleware/versioner/accept_version_header_spec.rb
418
+ - spec/grape/middleware/versioner/header_spec.rb
419
+ - spec/grape/middleware/versioner/path_spec.rb
420
+ - spec/grape/middleware/versioner/param_spec.rb
421
+ - spec/grape/middleware/base_spec.rb
430
422
  - spec/grape/config_spec.rb
431
- - spec/grape/parser_spec.rb
432
- - spec/grape/exceptions/body_parse_errors_spec.rb
433
- - spec/grape/exceptions/missing_option_spec.rb
434
- - spec/grape/exceptions/invalid_accept_header_spec.rb
435
- - spec/grape/exceptions/validation_spec.rb
436
- - spec/grape/exceptions/unknown_validator_spec.rb
437
- - spec/grape/exceptions/validation_errors_spec.rb
438
- - spec/grape/exceptions/invalid_response_spec.rb
439
- - spec/grape/exceptions/unknown_options_spec.rb
440
- - spec/grape/exceptions/invalid_formatter_spec.rb
441
- - spec/grape/exceptions/invalid_versioner_option_spec.rb
442
- - spec/grape/exceptions/missing_mime_type_spec.rb
443
- - spec/grape/exceptions/base_spec.rb
444
- - spec/grape/path_spec.rb
423
+ - spec/grape/loading_spec.rb
424
+ - spec/grape/endpoint_spec.rb
425
+ - spec/grape/api_spec.rb
426
+ - spec/grape/util/reverse_stackable_values_spec.rb
445
427
  - spec/grape/util/stackable_values_spec.rb
446
- - spec/grape/util/strict_hash_configuration_spec.rb
447
428
  - spec/grape/util/inheritable_setting_spec.rb
448
- - spec/grape/util/reverse_stackable_values_spec.rb
429
+ - spec/grape/util/strict_hash_configuration_spec.rb
449
430
  - spec/grape/util/inheritable_values_spec.rb
450
- - spec/grape/extensions/param_builders/hash_with_indifferent_access_spec.rb
451
- - spec/grape/extensions/param_builders/hash_spec.rb
452
- - spec/grape/extensions/param_builders/hashie/mash_spec.rb
453
431
  - spec/grape/integration/rack_spec.rb
454
432
  - spec/grape/integration/rack_sendfile_spec.rb
455
433
  - spec/grape/integration/global_namespace_function_spec.rb
456
- - spec/grape/presenters/presenter_spec.rb
457
- - spec/grape/endpoint_spec.rb
458
- - spec/grape/api_spec.rb
459
- - spec/grape/middleware/exception_spec.rb
460
- - spec/grape/middleware/versioner/param_spec.rb
461
- - spec/grape/middleware/versioner/header_spec.rb
462
- - spec/grape/middleware/versioner/path_spec.rb
463
- - spec/grape/middleware/versioner/accept_version_header_spec.rb
464
- - spec/grape/middleware/globals_spec.rb
465
- - spec/grape/middleware/stack_spec.rb
466
- - spec/grape/middleware/formatter_spec.rb
467
- - spec/grape/middleware/error_spec.rb
468
- - spec/grape/middleware/auth/dsl_spec.rb
469
- - spec/grape/middleware/auth/strategies_spec.rb
470
- - spec/grape/middleware/auth/base_spec.rb
471
- - spec/grape/middleware/versioner_spec.rb
472
- - spec/grape/middleware/base_spec.rb
434
+ - spec/grape/validations_spec.rb
473
435
  - spec/grape/entity_spec.rb
474
- - spec/grape/dsl/settings_spec.rb
475
- - spec/grape/dsl/callbacks_spec.rb
476
- - spec/grape/dsl/middleware_spec.rb
477
- - spec/grape/dsl/inside_route_spec.rb
436
+ - spec/grape/exceptions/validation_spec.rb
437
+ - spec/grape/exceptions/invalid_accept_header_spec.rb
438
+ - spec/grape/exceptions/missing_option_spec.rb
439
+ - spec/grape/exceptions/invalid_response_spec.rb
440
+ - spec/grape/exceptions/body_parse_errors_spec.rb
441
+ - spec/grape/exceptions/invalid_formatter_spec.rb
442
+ - spec/grape/exceptions/missing_mime_type_spec.rb
443
+ - spec/grape/exceptions/unknown_options_spec.rb
444
+ - spec/grape/exceptions/validation_errors_spec.rb
445
+ - spec/grape/exceptions/unknown_validator_spec.rb
446
+ - spec/grape/exceptions/invalid_versioner_option_spec.rb
447
+ - spec/grape/exceptions/base_spec.rb
448
+ - spec/grape/presenters/presenter_spec.rb
449
+ - spec/grape/validations/single_attribute_iterator_spec.rb
450
+ - spec/grape/validations/attributes_iterator_spec.rb
451
+ - spec/grape/validations/types/primitive_coercer_spec.rb
452
+ - spec/grape/validations/types/set_coercer_spec.rb
453
+ - spec/grape/validations/types/array_coercer_spec.rb
454
+ - spec/grape/validations/params_scope_spec.rb
455
+ - spec/grape/validations/instance_behaivour_spec.rb
456
+ - spec/grape/validations/multiple_attributes_iterator_spec.rb
457
+ - spec/grape/validations/types_spec.rb
458
+ - spec/grape/validations/validators/regexp_spec.rb
459
+ - spec/grape/validations/validators/mutual_exclusion_spec.rb
460
+ - spec/grape/validations/validators/exactly_one_of_spec.rb
461
+ - spec/grape/validations/validators/except_values_spec.rb
462
+ - spec/grape/validations/validators/presence_spec.rb
463
+ - spec/grape/validations/validators/all_or_none_spec.rb
464
+ - spec/grape/validations/validators/allow_blank_spec.rb
465
+ - spec/grape/validations/validators/same_as_spec.rb
466
+ - spec/grape/validations/validators/default_spec.rb
467
+ - spec/grape/validations/validators/values_spec.rb
468
+ - spec/grape/validations/validators/at_least_one_of_spec.rb
469
+ - spec/grape/validations/validators/coerce_spec.rb
470
+ - spec/grape/validations/validators/zh-CN.yml
471
+ - spec/grape/extensions/param_builders/hashie/mash_spec.rb
472
+ - spec/grape/extensions/param_builders/hash_spec.rb
473
+ - spec/grape/extensions/param_builders/hash_with_indifferent_access_spec.rb
474
+ - spec/grape/parser_spec.rb
475
+ - spec/grape/request_spec.rb
476
+ - spec/grape/endpoint/declared_spec.rb
477
+ - spec/grape/api/parameters_modification_spec.rb
478
+ - spec/grape/api/patch_method_helpers_spec.rb
479
+ - spec/grape/api/required_parameters_with_invalid_method_spec.rb
480
+ - spec/grape/api/nested_helpers_spec.rb
481
+ - spec/grape/api/defines_boolean_in_params_spec.rb
482
+ - spec/grape/api/invalid_format_spec.rb
483
+ - spec/grape/api/required_parameters_in_route_spec.rb
484
+ - spec/grape/api/instance_spec.rb
485
+ - spec/grape/api/namespace_parameters_in_route_spec.rb
486
+ - spec/grape/api/recognize_path_spec.rb
487
+ - spec/grape/api/shared_helpers_exactly_one_of_spec.rb
488
+ - spec/grape/api/inherited_helpers_spec.rb
489
+ - spec/grape/api/shared_helpers_spec.rb
490
+ - spec/grape/api/deeply_included_options_spec.rb
491
+ - spec/grape/api/routes_with_requirements_spec.rb
492
+ - spec/grape/api/custom_validations_spec.rb
493
+ - spec/grape/api/optional_parameters_in_route_spec.rb
494
+ - spec/grape/api_remount_spec.rb
495
+ - spec/grape/named_api_spec.rb
496
+ - spec/grape/dsl/request_response_spec.rb
497
+ - spec/grape/dsl/desc_spec.rb
498
+ - spec/grape/dsl/logger_spec.rb
478
499
  - spec/grape/dsl/configuration_spec.rb
500
+ - spec/grape/dsl/validations_spec.rb
479
501
  - spec/grape/dsl/parameters_spec.rb
480
- - spec/grape/dsl/logger_spec.rb
481
502
  - spec/grape/dsl/helpers_spec.rb
482
- - spec/grape/dsl/request_response_spec.rb
483
- - spec/grape/dsl/routing_spec.rb
503
+ - spec/grape/dsl/middleware_spec.rb
484
504
  - spec/grape/dsl/headers_spec.rb
485
- - spec/grape/dsl/validations_spec.rb
486
- - spec/grape/dsl/desc_spec.rb
487
- - spec/grape/validations_spec.rb
488
- - spec/grape/named_api_spec.rb
489
- - spec/grape/loading_spec.rb
490
- - spec/grape/request_spec.rb
491
- - spec/integration/multi_xml/xml_spec.rb
492
- - spec/integration/multi_json/json_spec.rb
493
- - spec/spec_helper.rb
505
+ - spec/grape/dsl/callbacks_spec.rb
506
+ - spec/grape/dsl/settings_spec.rb
507
+ - spec/grape/dsl/routing_spec.rb
508
+ - spec/grape/dsl/inside_route_spec.rb
509
+ - spec/grape/path_spec.rb
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Grape
4
- module ContentTypes
5
- # Content types are listed in order of preference.
6
- CONTENT_TYPES = { # rubocop:disable Style/MutableConstant
7
- xml: 'application/xml',
8
- serializable_hash: 'application/json',
9
- json: 'application/json',
10
- binary: 'application/octet-stream',
11
- txt: 'text/plain'
12
- }
13
-
14
- def self.content_types_for_settings(settings)
15
- return if settings.blank?
16
-
17
- settings.each_with_object({}) { |value, result| result.merge!(value) }
18
- end
19
-
20
- def self.content_types_for(from_settings)
21
- if from_settings.present?
22
- from_settings
23
- else
24
- Grape::ContentTypes::CONTENT_TYPES
25
- end
26
- end
27
- end
28
- end