grape 1.3.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
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