grape 1.3.1 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +82 -1
  3. data/LICENSE +1 -1
  4. data/README.md +104 -21
  5. data/UPGRADING.md +265 -39
  6. data/lib/grape.rb +2 -2
  7. data/lib/grape/api.rb +2 -2
  8. data/lib/grape/api/instance.rb +29 -28
  9. data/lib/grape/dsl/helpers.rb +1 -0
  10. data/lib/grape/dsl/inside_route.rb +69 -36
  11. data/lib/grape/dsl/parameters.rb +7 -3
  12. data/lib/grape/dsl/routing.rb +2 -4
  13. data/lib/grape/dsl/validations.rb +18 -1
  14. data/lib/grape/eager_load.rb +1 -1
  15. data/lib/grape/endpoint.rb +8 -6
  16. data/lib/grape/http/headers.rb +1 -0
  17. data/lib/grape/middleware/base.rb +2 -1
  18. data/lib/grape/middleware/error.rb +10 -12
  19. data/lib/grape/middleware/formatter.rb +3 -3
  20. data/lib/grape/middleware/stack.rb +21 -8
  21. data/lib/grape/middleware/versioner/header.rb +1 -1
  22. data/lib/grape/middleware/versioner/parse_media_type_patch.rb +2 -1
  23. data/lib/grape/path.rb +2 -2
  24. data/lib/grape/request.rb +1 -1
  25. data/lib/grape/router.rb +30 -43
  26. data/lib/grape/router/attribute_translator.rb +26 -5
  27. data/lib/grape/router/route.rb +3 -22
  28. data/lib/grape/{serve_file → serve_stream}/file_body.rb +1 -1
  29. data/lib/grape/{serve_file → serve_stream}/sendfile_response.rb +1 -1
  30. data/lib/grape/{serve_file/file_response.rb → serve_stream/stream_response.rb} +8 -8
  31. data/lib/grape/util/base_inheritable.rb +11 -8
  32. data/lib/grape/util/lazy_value.rb +1 -0
  33. data/lib/grape/util/reverse_stackable_values.rb +3 -1
  34. data/lib/grape/util/stackable_values.rb +3 -1
  35. data/lib/grape/validations/attributes_iterator.rb +8 -0
  36. data/lib/grape/validations/multiple_attributes_iterator.rb +1 -1
  37. data/lib/grape/validations/params_scope.rb +8 -6
  38. data/lib/grape/validations/single_attribute_iterator.rb +1 -1
  39. data/lib/grape/validations/types.rb +6 -5
  40. data/lib/grape/validations/types/array_coercer.rb +14 -5
  41. data/lib/grape/validations/types/build_coercer.rb +5 -8
  42. data/lib/grape/validations/types/custom_type_coercer.rb +14 -2
  43. data/lib/grape/validations/types/dry_type_coercer.rb +36 -1
  44. data/lib/grape/validations/types/file.rb +15 -13
  45. data/lib/grape/validations/types/json.rb +40 -36
  46. data/lib/grape/validations/types/primitive_coercer.rb +11 -5
  47. data/lib/grape/validations/types/set_coercer.rb +6 -4
  48. data/lib/grape/validations/types/variant_collection_coercer.rb +1 -1
  49. data/lib/grape/validations/validator_factory.rb +1 -1
  50. data/lib/grape/validations/validators/as.rb +1 -1
  51. data/lib/grape/validations/validators/base.rb +4 -5
  52. data/lib/grape/validations/validators/coerce.rb +3 -10
  53. data/lib/grape/validations/validators/default.rb +3 -5
  54. data/lib/grape/validations/validators/except_values.rb +1 -1
  55. data/lib/grape/validations/validators/multiple_params_base.rb +2 -1
  56. data/lib/grape/validations/validators/regexp.rb +1 -1
  57. data/lib/grape/validations/validators/values.rb +1 -1
  58. data/lib/grape/version.rb +1 -1
  59. data/spec/grape/api/instance_spec.rb +50 -0
  60. data/spec/grape/api_spec.rb +75 -0
  61. data/spec/grape/dsl/inside_route_spec.rb +182 -33
  62. data/spec/grape/endpoint/declared_spec.rb +601 -0
  63. data/spec/grape/endpoint_spec.rb +0 -521
  64. data/spec/grape/entity_spec.rb +6 -0
  65. data/spec/grape/integration/rack_sendfile_spec.rb +12 -8
  66. data/spec/grape/middleware/auth/strategies_spec.rb +1 -1
  67. data/spec/grape/middleware/error_spec.rb +1 -1
  68. data/spec/grape/middleware/formatter_spec.rb +1 -1
  69. data/spec/grape/middleware/stack_spec.rb +3 -1
  70. data/spec/grape/path_spec.rb +4 -4
  71. data/spec/grape/validations/multiple_attributes_iterator_spec.rb +13 -3
  72. data/spec/grape/validations/params_scope_spec.rb +26 -0
  73. data/spec/grape/validations/single_attribute_iterator_spec.rb +17 -6
  74. data/spec/grape/validations/types/array_coercer_spec.rb +35 -0
  75. data/spec/grape/validations/types/primitive_coercer_spec.rb +65 -5
  76. data/spec/grape/validations/types/set_coercer_spec.rb +34 -0
  77. data/spec/grape/validations/types_spec.rb +1 -1
  78. data/spec/grape/validations/validators/coerce_spec.rb +317 -29
  79. data/spec/grape/validations/validators/default_spec.rb +170 -0
  80. data/spec/grape/validations/validators/except_values_spec.rb +1 -0
  81. data/spec/grape/validations/validators/values_spec.rb +1 -1
  82. data/spec/grape/validations_spec.rb +290 -18
  83. data/spec/integration/eager_load/eager_load_spec.rb +15 -0
  84. data/spec/spec_helper.rb +0 -10
  85. data/spec/support/chunks.rb +14 -0
  86. data/spec/support/versioned_helpers.rb +3 -5
  87. metadata +18 -8
@@ -20,17 +20,7 @@ eager_load!
20
20
  # so it should be set to true here as well to reflect that.
21
21
  I18n.enforce_available_locales = true
22
22
 
23
- module Chunks
24
- def read_chunks(body)
25
- buffer = []
26
- body.each { |chunk| buffer << chunk }
27
-
28
- buffer
29
- end
30
- end
31
-
32
23
  RSpec.configure do |config|
33
- config.include Chunks
34
24
  config.include Rack::Test::Methods
35
25
  config.include Spec::Support::Helpers
36
26
  config.raise_errors_for_deprecations!
@@ -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
@@ -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.1
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Bleigh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-11 00:00:00.000000000 Z
11
+ date: 2020-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -197,9 +197,9 @@ files:
197
197
  - lib/grape/router/attribute_translator.rb
198
198
  - lib/grape/router/pattern.rb
199
199
  - lib/grape/router/route.rb
200
- - lib/grape/serve_file/file_body.rb
201
- - lib/grape/serve_file/file_response.rb
202
- - 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
203
203
  - lib/grape/util/base_inheritable.rb
204
204
  - lib/grape/util/cache.rb
205
205
  - lib/grape/util/endpoint_configuration.rb
@@ -282,6 +282,7 @@ files:
282
282
  - spec/grape/dsl/routing_spec.rb
283
283
  - spec/grape/dsl/settings_spec.rb
284
284
  - spec/grape/dsl/validations_spec.rb
285
+ - spec/grape/endpoint/declared_spec.rb
285
286
  - spec/grape/endpoint_spec.rb
286
287
  - spec/grape/entity_spec.rb
287
288
  - spec/grape/exceptions/base_spec.rb
@@ -332,7 +333,9 @@ files:
332
333
  - spec/grape/validations/multiple_attributes_iterator_spec.rb
333
334
  - spec/grape/validations/params_scope_spec.rb
334
335
  - spec/grape/validations/single_attribute_iterator_spec.rb
336
+ - spec/grape/validations/types/array_coercer_spec.rb
335
337
  - spec/grape/validations/types/primitive_coercer_spec.rb
338
+ - spec/grape/validations/types/set_coercer_spec.rb
336
339
  - spec/grape/validations/types_spec.rb
337
340
  - spec/grape/validations/validators/all_or_none_spec.rb
338
341
  - spec/grape/validations/validators/allow_blank_spec.rb
@@ -348,11 +351,13 @@ files:
348
351
  - spec/grape/validations/validators/values_spec.rb
349
352
  - spec/grape/validations/validators/zh-CN.yml
350
353
  - spec/grape/validations_spec.rb
354
+ - spec/integration/eager_load/eager_load_spec.rb
351
355
  - spec/integration/multi_json/json_spec.rb
352
356
  - spec/integration/multi_xml/xml_spec.rb
353
357
  - spec/shared/versioning_examples.rb
354
358
  - spec/spec_helper.rb
355
359
  - spec/support/basic_auth_encode_helpers.rb
360
+ - spec/support/chunks.rb
356
361
  - spec/support/content_type_helpers.rb
357
362
  - spec/support/eager_load.rb
358
363
  - spec/support/endpoint_faker.rb
@@ -364,9 +369,9 @@ licenses:
364
369
  - MIT
365
370
  metadata:
366
371
  bug_tracker_uri: https://github.com/ruby-grape/grape/issues
367
- changelog_uri: https://github.com/ruby-grape/grape/blob/v1.3.1/CHANGELOG.md
368
- documentation_uri: https://www.rubydoc.info/gems/grape/1.3.1
369
- source_code_uri: https://github.com/ruby-grape/grape/tree/v1.3.1
372
+ changelog_uri: https://github.com/ruby-grape/grape/blob/v1.5.1/CHANGELOG.md
373
+ documentation_uri: https://www.rubydoc.info/gems/grape/1.5.1
374
+ source_code_uri: https://github.com/ruby-grape/grape/tree/v1.5.1
370
375
  post_install_message:
371
376
  rdoc_options: []
372
377
  require_paths:
@@ -393,6 +398,7 @@ test_files:
393
398
  - spec/support/eager_load.rb
394
399
  - spec/support/basic_auth_encode_helpers.rb
395
400
  - spec/support/file_streamer.rb
401
+ - spec/support/chunks.rb
396
402
  - spec/support/endpoint_faker.rb
397
403
  - spec/support/integer_helpers.rb
398
404
  - spec/grape/api/namespace_parameters_in_route_spec.rb
@@ -415,6 +421,8 @@ test_files:
415
421
  - spec/grape/api_remount_spec.rb
416
422
  - spec/grape/validations/types_spec.rb
417
423
  - spec/grape/validations/attributes_iterator_spec.rb
424
+ - spec/grape/validations/types/array_coercer_spec.rb
425
+ - spec/grape/validations/types/set_coercer_spec.rb
418
426
  - spec/grape/validations/types/primitive_coercer_spec.rb
419
427
  - spec/grape/validations/validators/regexp_spec.rb
420
428
  - spec/grape/validations/validators/default_spec.rb
@@ -459,6 +467,7 @@ test_files:
459
467
  - spec/grape/integration/rack_spec.rb
460
468
  - spec/grape/integration/rack_sendfile_spec.rb
461
469
  - spec/grape/integration/global_namespace_function_spec.rb
470
+ - spec/grape/endpoint/declared_spec.rb
462
471
  - spec/grape/presenters/presenter_spec.rb
463
472
  - spec/grape/endpoint_spec.rb
464
473
  - spec/grape/api_spec.rb
@@ -494,6 +503,7 @@ test_files:
494
503
  - spec/grape/named_api_spec.rb
495
504
  - spec/grape/loading_spec.rb
496
505
  - spec/grape/request_spec.rb
506
+ - spec/integration/eager_load/eager_load_spec.rb
497
507
  - spec/integration/multi_xml/xml_spec.rb
498
508
  - spec/integration/multi_json/json_spec.rb
499
509
  - spec/spec_helper.rb