grape 1.3.1 → 1.5.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +82 -1
- data/LICENSE +1 -1
- data/README.md +104 -21
- data/UPGRADING.md +265 -39
- data/lib/grape.rb +2 -2
- data/lib/grape/api.rb +2 -2
- data/lib/grape/api/instance.rb +29 -28
- data/lib/grape/dsl/helpers.rb +1 -0
- data/lib/grape/dsl/inside_route.rb +69 -36
- data/lib/grape/dsl/parameters.rb +7 -3
- data/lib/grape/dsl/routing.rb +2 -4
- data/lib/grape/dsl/validations.rb +18 -1
- data/lib/grape/eager_load.rb +1 -1
- data/lib/grape/endpoint.rb +8 -6
- data/lib/grape/http/headers.rb +1 -0
- data/lib/grape/middleware/base.rb +2 -1
- data/lib/grape/middleware/error.rb +10 -12
- data/lib/grape/middleware/formatter.rb +3 -3
- data/lib/grape/middleware/stack.rb +21 -8
- data/lib/grape/middleware/versioner/header.rb +1 -1
- data/lib/grape/middleware/versioner/parse_media_type_patch.rb +2 -1
- data/lib/grape/path.rb +2 -2
- data/lib/grape/request.rb +1 -1
- data/lib/grape/router.rb +30 -43
- data/lib/grape/router/attribute_translator.rb +26 -5
- data/lib/grape/router/route.rb +3 -22
- data/lib/grape/{serve_file → serve_stream}/file_body.rb +1 -1
- data/lib/grape/{serve_file → serve_stream}/sendfile_response.rb +1 -1
- data/lib/grape/{serve_file/file_response.rb → serve_stream/stream_response.rb} +8 -8
- data/lib/grape/util/base_inheritable.rb +11 -8
- data/lib/grape/util/lazy_value.rb +1 -0
- data/lib/grape/util/reverse_stackable_values.rb +3 -1
- data/lib/grape/util/stackable_values.rb +3 -1
- data/lib/grape/validations/attributes_iterator.rb +8 -0
- data/lib/grape/validations/multiple_attributes_iterator.rb +1 -1
- data/lib/grape/validations/params_scope.rb +8 -6
- data/lib/grape/validations/single_attribute_iterator.rb +1 -1
- data/lib/grape/validations/types.rb +6 -5
- data/lib/grape/validations/types/array_coercer.rb +14 -5
- data/lib/grape/validations/types/build_coercer.rb +5 -8
- data/lib/grape/validations/types/custom_type_coercer.rb +14 -2
- data/lib/grape/validations/types/dry_type_coercer.rb +36 -1
- data/lib/grape/validations/types/file.rb +15 -13
- data/lib/grape/validations/types/json.rb +40 -36
- data/lib/grape/validations/types/primitive_coercer.rb +11 -5
- data/lib/grape/validations/types/set_coercer.rb +6 -4
- data/lib/grape/validations/types/variant_collection_coercer.rb +1 -1
- data/lib/grape/validations/validator_factory.rb +1 -1
- data/lib/grape/validations/validators/as.rb +1 -1
- data/lib/grape/validations/validators/base.rb +4 -5
- data/lib/grape/validations/validators/coerce.rb +3 -10
- data/lib/grape/validations/validators/default.rb +3 -5
- data/lib/grape/validations/validators/except_values.rb +1 -1
- data/lib/grape/validations/validators/multiple_params_base.rb +2 -1
- data/lib/grape/validations/validators/regexp.rb +1 -1
- data/lib/grape/validations/validators/values.rb +1 -1
- data/lib/grape/version.rb +1 -1
- data/spec/grape/api/instance_spec.rb +50 -0
- data/spec/grape/api_spec.rb +75 -0
- data/spec/grape/dsl/inside_route_spec.rb +182 -33
- data/spec/grape/endpoint/declared_spec.rb +601 -0
- data/spec/grape/endpoint_spec.rb +0 -521
- data/spec/grape/entity_spec.rb +6 -0
- data/spec/grape/integration/rack_sendfile_spec.rb +12 -8
- data/spec/grape/middleware/auth/strategies_spec.rb +1 -1
- data/spec/grape/middleware/error_spec.rb +1 -1
- data/spec/grape/middleware/formatter_spec.rb +1 -1
- data/spec/grape/middleware/stack_spec.rb +3 -1
- data/spec/grape/path_spec.rb +4 -4
- data/spec/grape/validations/multiple_attributes_iterator_spec.rb +13 -3
- data/spec/grape/validations/params_scope_spec.rb +26 -0
- data/spec/grape/validations/single_attribute_iterator_spec.rb +17 -6
- data/spec/grape/validations/types/array_coercer_spec.rb +35 -0
- data/spec/grape/validations/types/primitive_coercer_spec.rb +65 -5
- data/spec/grape/validations/types/set_coercer_spec.rb +34 -0
- data/spec/grape/validations/types_spec.rb +1 -1
- data/spec/grape/validations/validators/coerce_spec.rb +317 -29
- data/spec/grape/validations/validators/default_spec.rb +170 -0
- data/spec/grape/validations/validators/except_values_spec.rb +1 -0
- data/spec/grape/validations/validators/values_spec.rb +1 -1
- data/spec/grape/validations_spec.rb +290 -18
- data/spec/integration/eager_load/eager_load_spec.rb +15 -0
- data/spec/spec_helper.rb +0 -10
- data/spec/support/chunks.rb +14 -0
- data/spec/support/versioned_helpers.rb +3 -5
- metadata +18 -8
data/spec/spec_helper.rb
CHANGED
@@ -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!
|
@@ -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.
|
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-
|
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/
|
201
|
-
- lib/grape/
|
202
|
-
- lib/grape/
|
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.
|
368
|
-
documentation_uri: https://www.rubydoc.info/gems/grape/1.
|
369
|
-
source_code_uri: https://github.com/ruby-grape/grape/tree/v1.
|
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
|