grape 1.2.5 → 1.4.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.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +97 -0
 - data/LICENSE +1 -1
 - data/README.md +53 -16
 - data/UPGRADING.md +231 -23
 - data/grape.gemspec +10 -1
 - data/lib/grape.rb +6 -7
 - data/lib/grape/api.rb +4 -2
 - data/lib/grape/api/helpers.rb +2 -0
 - data/lib/grape/api/instance.rb +36 -33
 - data/lib/grape/config.rb +2 -0
 - data/lib/grape/content_types.rb +34 -0
 - data/lib/grape/cookies.rb +2 -0
 - data/lib/grape/dsl/api.rb +2 -0
 - data/lib/grape/dsl/callbacks.rb +2 -0
 - data/lib/grape/dsl/configuration.rb +2 -0
 - data/lib/grape/dsl/desc.rb +2 -0
 - data/lib/grape/dsl/headers.rb +2 -0
 - data/lib/grape/dsl/helpers.rb +4 -2
 - data/lib/grape/dsl/inside_route.rb +83 -34
 - data/lib/grape/dsl/logger.rb +2 -0
 - data/lib/grape/dsl/middleware.rb +2 -0
 - data/lib/grape/dsl/parameters.rb +8 -6
 - data/lib/grape/dsl/request_response.rb +4 -2
 - data/lib/grape/dsl/routing.rb +9 -5
 - data/lib/grape/dsl/settings.rb +7 -1
 - data/lib/grape/dsl/validations.rb +20 -1
 - data/lib/grape/eager_load.rb +3 -1
 - data/lib/grape/endpoint.rb +21 -13
 - data/lib/grape/error_formatter.rb +3 -1
 - data/lib/grape/error_formatter/base.rb +2 -0
 - data/lib/grape/error_formatter/json.rb +2 -0
 - data/lib/grape/error_formatter/txt.rb +2 -0
 - data/lib/grape/error_formatter/xml.rb +2 -0
 - data/lib/grape/exceptions/base.rb +11 -13
 - data/lib/grape/exceptions/incompatible_option_values.rb +2 -0
 - data/lib/grape/exceptions/invalid_accept_header.rb +2 -0
 - data/lib/grape/exceptions/invalid_formatter.rb +2 -0
 - data/lib/grape/exceptions/invalid_message_body.rb +2 -0
 - data/lib/grape/exceptions/invalid_response.rb +2 -0
 - data/lib/grape/exceptions/invalid_version_header.rb +2 -0
 - data/lib/grape/exceptions/invalid_versioner_option.rb +2 -0
 - data/lib/grape/exceptions/invalid_with_option_for_represent.rb +2 -0
 - data/lib/grape/exceptions/method_not_allowed.rb +2 -0
 - data/lib/grape/exceptions/missing_group_type.rb +2 -0
 - data/lib/grape/exceptions/missing_mime_type.rb +2 -0
 - data/lib/grape/exceptions/missing_option.rb +2 -0
 - data/lib/grape/exceptions/missing_vendor_option.rb +2 -0
 - data/lib/grape/exceptions/unknown_options.rb +2 -0
 - data/lib/grape/exceptions/unknown_parameter.rb +2 -0
 - data/lib/grape/exceptions/unknown_validator.rb +2 -0
 - data/lib/grape/exceptions/unsupported_group_type.rb +2 -0
 - data/lib/grape/exceptions/validation.rb +3 -1
 - data/lib/grape/exceptions/validation_array_errors.rb +2 -0
 - data/lib/grape/exceptions/validation_errors.rb +13 -12
 - data/lib/grape/extensions/active_support/hash_with_indifferent_access.rb +4 -3
 - data/lib/grape/extensions/deep_mergeable_hash.rb +2 -0
 - data/lib/grape/extensions/deep_symbolize_hash.rb +2 -0
 - data/lib/grape/extensions/hash.rb +2 -0
 - data/lib/grape/extensions/hashie/mash.rb +2 -0
 - data/lib/grape/formatter.rb +5 -3
 - data/lib/grape/formatter/json.rb +2 -0
 - data/lib/grape/formatter/serializable_hash.rb +2 -0
 - data/lib/grape/formatter/txt.rb +2 -0
 - data/lib/grape/formatter/xml.rb +2 -0
 - data/lib/grape/http/headers.rb +50 -18
 - data/lib/grape/middleware/auth/base.rb +2 -0
 - data/lib/grape/middleware/auth/dsl.rb +2 -0
 - data/lib/grape/middleware/auth/strategies.rb +2 -0
 - data/lib/grape/middleware/auth/strategy_info.rb +2 -0
 - data/lib/grape/middleware/base.rb +7 -7
 - data/lib/grape/middleware/error.rb +3 -1
 - data/lib/grape/middleware/filter.rb +2 -0
 - data/lib/grape/middleware/formatter.rb +8 -6
 - data/lib/grape/middleware/globals.rb +2 -0
 - data/lib/grape/middleware/helpers.rb +2 -0
 - data/lib/grape/middleware/stack.rb +4 -1
 - data/lib/grape/middleware/versioner.rb +2 -0
 - data/lib/grape/middleware/versioner/accept_version_header.rb +2 -0
 - data/lib/grape/middleware/versioner/header.rb +6 -4
 - data/lib/grape/middleware/versioner/param.rb +3 -1
 - data/lib/grape/middleware/versioner/parse_media_type_patch.rb +4 -1
 - data/lib/grape/middleware/versioner/path.rb +3 -1
 - data/lib/grape/namespace.rb +14 -2
 - data/lib/grape/parser.rb +3 -1
 - data/lib/grape/parser/json.rb +2 -0
 - data/lib/grape/parser/xml.rb +2 -0
 - data/lib/grape/path.rb +15 -3
 - data/lib/grape/presenters/presenter.rb +2 -0
 - data/lib/grape/request.rb +15 -8
 - data/lib/grape/router.rb +30 -29
 - data/lib/grape/router/attribute_translator.rb +39 -8
 - data/lib/grape/router/pattern.rb +20 -16
 - data/lib/grape/router/route.rb +12 -26
 - data/lib/grape/{serve_file → serve_stream}/file_body.rb +3 -1
 - data/lib/grape/{serve_file → serve_stream}/sendfile_response.rb +3 -1
 - data/lib/grape/{serve_file/file_response.rb → serve_stream/stream_response.rb} +10 -8
 - data/lib/grape/util/base_inheritable.rb +15 -6
 - data/lib/grape/util/cache.rb +20 -0
 - data/lib/grape/util/endpoint_configuration.rb +2 -0
 - data/lib/grape/util/env.rb +19 -17
 - data/lib/grape/util/inheritable_setting.rb +2 -0
 - data/lib/grape/util/inheritable_values.rb +2 -0
 - data/lib/grape/util/json.rb +2 -0
 - data/lib/grape/util/lazy_block.rb +2 -0
 - data/lib/grape/util/lazy_object.rb +43 -0
 - data/lib/grape/util/lazy_value.rb +2 -0
 - data/lib/grape/util/registrable.rb +2 -0
 - data/lib/grape/util/reverse_stackable_values.rb +4 -0
 - data/lib/grape/util/stackable_values.rb +10 -20
 - data/lib/grape/util/strict_hash_configuration.rb +2 -0
 - data/lib/grape/util/xml.rb +2 -0
 - data/lib/grape/validations.rb +2 -0
 - data/lib/grape/validations/attributes_iterator.rb +3 -3
 - data/lib/grape/validations/multiple_attributes_iterator.rb +2 -0
 - data/lib/grape/validations/params_scope.rb +27 -14
 - data/lib/grape/validations/single_attribute_iterator.rb +13 -2
 - data/lib/grape/validations/types.rb +12 -34
 - data/lib/grape/validations/types/array_coercer.rb +65 -0
 - data/lib/grape/validations/types/build_coercer.rb +47 -49
 - data/lib/grape/validations/types/custom_type_coercer.rb +15 -49
 - data/lib/grape/validations/types/custom_type_collection_coercer.rb +10 -25
 - data/lib/grape/validations/types/dry_type_coercer.rb +76 -0
 - data/lib/grape/validations/types/file.rb +22 -18
 - data/lib/grape/validations/types/json.rb +46 -39
 - data/lib/grape/validations/types/multiple_type_coercer.rb +14 -33
 - data/lib/grape/validations/types/primitive_coercer.rb +67 -0
 - data/lib/grape/validations/types/set_coercer.rb +40 -0
 - data/lib/grape/validations/types/variant_collection_coercer.rb +5 -13
 - data/lib/grape/validations/validator_factory.rb +2 -0
 - data/lib/grape/validations/validators/all_or_none.rb +3 -1
 - data/lib/grape/validations/validators/allow_blank.rb +3 -1
 - data/lib/grape/validations/validators/as.rb +2 -0
 - data/lib/grape/validations/validators/at_least_one_of.rb +3 -1
 - data/lib/grape/validations/validators/base.rb +8 -5
 - data/lib/grape/validations/validators/coerce.rb +39 -29
 - data/lib/grape/validations/validators/default.rb +2 -1
 - data/lib/grape/validations/validators/exactly_one_of.rb +6 -2
 - data/lib/grape/validations/validators/except_values.rb +3 -1
 - data/lib/grape/validations/validators/multiple_params_base.rb +2 -0
 - data/lib/grape/validations/validators/mutual_exclusion.rb +3 -1
 - data/lib/grape/validations/validators/presence.rb +3 -1
 - data/lib/grape/validations/validators/regexp.rb +4 -2
 - data/lib/grape/validations/validators/same_as.rb +6 -3
 - data/lib/grape/validations/validators/values.rb +17 -5
 - data/lib/grape/version.rb +3 -1
 - data/spec/grape/api/custom_validations_spec.rb +5 -3
 - data/spec/grape/api/deeply_included_options_spec.rb +2 -0
 - data/spec/grape/api/defines_boolean_in_params_spec.rb +5 -3
 - data/spec/grape/api/inherited_helpers_spec.rb +2 -0
 - data/spec/grape/api/instance_spec.rb +104 -0
 - data/spec/grape/api/invalid_format_spec.rb +2 -0
 - data/spec/grape/api/namespace_parameters_in_route_spec.rb +2 -0
 - data/spec/grape/api/nested_helpers_spec.rb +2 -0
 - data/spec/grape/api/optional_parameters_in_route_spec.rb +2 -0
 - data/spec/grape/api/parameters_modification_spec.rb +3 -1
 - data/spec/grape/api/patch_method_helpers_spec.rb +2 -0
 - data/spec/grape/api/recognize_path_spec.rb +2 -0
 - data/spec/grape/api/required_parameters_in_route_spec.rb +2 -0
 - data/spec/grape/api/required_parameters_with_invalid_method_spec.rb +2 -0
 - data/spec/grape/api/routes_with_requirements_spec.rb +2 -0
 - data/spec/grape/api/shared_helpers_exactly_one_of_spec.rb +2 -0
 - data/spec/grape/api/shared_helpers_spec.rb +2 -0
 - data/spec/grape/api_remount_spec.rb +2 -0
 - data/spec/grape/api_spec.rb +99 -11
 - data/spec/grape/config_spec.rb +2 -0
 - data/spec/grape/dsl/callbacks_spec.rb +2 -0
 - data/spec/grape/dsl/configuration_spec.rb +2 -0
 - data/spec/grape/dsl/desc_spec.rb +2 -0
 - data/spec/grape/dsl/headers_spec.rb +2 -0
 - data/spec/grape/dsl/helpers_spec.rb +4 -2
 - data/spec/grape/dsl/inside_route_spec.rb +177 -33
 - data/spec/grape/dsl/logger_spec.rb +2 -0
 - data/spec/grape/dsl/middleware_spec.rb +2 -0
 - data/spec/grape/dsl/parameters_spec.rb +2 -0
 - data/spec/grape/dsl/request_response_spec.rb +2 -0
 - data/spec/grape/dsl/routing_spec.rb +2 -0
 - data/spec/grape/dsl/settings_spec.rb +2 -0
 - data/spec/grape/dsl/validations_spec.rb +2 -0
 - data/spec/grape/endpoint_spec.rb +21 -6
 - data/spec/grape/entity_spec.rb +2 -0
 - data/spec/grape/exceptions/base_spec.rb +3 -1
 - data/spec/grape/exceptions/body_parse_errors_spec.rb +2 -0
 - data/spec/grape/exceptions/invalid_accept_header_spec.rb +2 -0
 - data/spec/grape/exceptions/invalid_formatter_spec.rb +2 -0
 - data/spec/grape/exceptions/invalid_response_spec.rb +2 -0
 - data/spec/grape/exceptions/invalid_versioner_option_spec.rb +2 -0
 - data/spec/grape/exceptions/missing_mime_type_spec.rb +2 -0
 - data/spec/grape/exceptions/missing_option_spec.rb +2 -0
 - data/spec/grape/exceptions/unknown_options_spec.rb +2 -0
 - data/spec/grape/exceptions/unknown_validator_spec.rb +2 -0
 - data/spec/grape/exceptions/validation_errors_spec.rb +4 -2
 - data/spec/grape/exceptions/validation_spec.rb +3 -1
 - data/spec/grape/extensions/param_builders/hash_spec.rb +2 -0
 - data/spec/grape/extensions/param_builders/hash_with_indifferent_access_spec.rb +2 -0
 - data/spec/grape/extensions/param_builders/hashie/mash_spec.rb +2 -0
 - data/spec/grape/integration/global_namespace_function_spec.rb +2 -0
 - data/spec/grape/integration/rack_sendfile_spec.rb +14 -8
 - data/spec/grape/integration/rack_spec.rb +3 -1
 - data/spec/grape/loading_spec.rb +2 -0
 - data/spec/grape/middleware/auth/base_spec.rb +2 -0
 - data/spec/grape/middleware/auth/dsl_spec.rb +2 -0
 - data/spec/grape/middleware/auth/strategies_spec.rb +3 -1
 - data/spec/grape/middleware/base_spec.rb +2 -0
 - data/spec/grape/middleware/error_spec.rb +2 -0
 - data/spec/grape/middleware/exception_spec.rb +3 -1
 - data/spec/grape/middleware/formatter_spec.rb +19 -12
 - data/spec/grape/middleware/globals_spec.rb +2 -0
 - data/spec/grape/middleware/stack_spec.rb +11 -0
 - data/spec/grape/middleware/versioner/accept_version_header_spec.rb +3 -1
 - data/spec/grape/middleware/versioner/header_spec.rb +3 -1
 - data/spec/grape/middleware/versioner/param_spec.rb +3 -1
 - data/spec/grape/middleware/versioner/path_spec.rb +3 -1
 - data/spec/grape/middleware/versioner_spec.rb +2 -0
 - data/spec/grape/named_api_spec.rb +2 -0
 - data/spec/grape/parser_spec.rb +7 -5
 - data/spec/grape/path_spec.rb +6 -4
 - data/spec/grape/presenters/presenter_spec.rb +2 -0
 - data/spec/grape/request_spec.rb +2 -0
 - data/spec/grape/util/inheritable_setting_spec.rb +2 -0
 - data/spec/grape/util/inheritable_values_spec.rb +2 -0
 - data/spec/grape/util/reverse_stackable_values_spec.rb +2 -0
 - data/spec/grape/util/stackable_values_spec.rb +3 -1
 - data/spec/grape/util/strict_hash_configuration_spec.rb +2 -0
 - data/spec/grape/validations/attributes_iterator_spec.rb +2 -0
 - data/spec/grape/validations/instance_behaivour_spec.rb +5 -3
 - data/spec/grape/validations/multiple_attributes_iterator_spec.rb +2 -0
 - data/spec/grape/validations/params_scope_spec.rb +3 -1
 - data/spec/grape/validations/single_attribute_iterator_spec.rb +18 -4
 - data/spec/grape/validations/types/array_coercer_spec.rb +35 -0
 - data/spec/grape/validations/types/primitive_coercer_spec.rb +135 -0
 - data/spec/grape/validations/types/set_coercer_spec.rb +34 -0
 - data/spec/grape/validations/types_spec.rb +9 -36
 - data/spec/grape/validations/validators/all_or_none_spec.rb +2 -0
 - data/spec/grape/validations/validators/allow_blank_spec.rb +2 -0
 - data/spec/grape/validations/validators/at_least_one_of_spec.rb +2 -0
 - data/spec/grape/validations/validators/coerce_spec.rb +341 -136
 - data/spec/grape/validations/validators/default_spec.rb +123 -0
 - data/spec/grape/validations/validators/exactly_one_of_spec.rb +14 -12
 - data/spec/grape/validations/validators/except_values_spec.rb +3 -1
 - data/spec/grape/validations/validators/mutual_exclusion_spec.rb +2 -0
 - data/spec/grape/validations/validators/presence_spec.rb +30 -0
 - data/spec/grape/validations/validators/regexp_spec.rb +2 -0
 - data/spec/grape/validations/validators/same_as_spec.rb +2 -0
 - data/spec/grape/validations/validators/values_spec.rb +30 -5
 - data/spec/grape/validations_spec.rb +91 -33
 - data/spec/integration/eager_load/eager_load_spec.rb +15 -0
 - data/spec/integration/multi_json/json_spec.rb +2 -0
 - data/spec/integration/multi_xml/xml_spec.rb +2 -0
 - data/spec/shared/versioning_examples.rb +2 -0
 - data/spec/spec_helper.rb +18 -0
 - data/spec/support/basic_auth_encode_helpers.rb +2 -0
 - data/spec/support/content_type_helpers.rb +2 -0
 - data/spec/support/eager_load.rb +19 -0
 - data/spec/support/endpoint_faker.rb +2 -0
 - data/spec/support/file_streamer.rb +2 -0
 - data/spec/support/integer_helpers.rb +2 -0
 - data/spec/support/versioned_helpers.rb +4 -2
 - metadata +48 -28
 - data/lib/grape/extensions/deep_hash_with_indifferent_access.rb +0 -18
 - data/lib/grape/util/content_types.rb +0 -26
 - data/lib/grape/validations/types/virtus_collection_patch.rb +0 -16
 
| 
         @@ -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
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | 
         @@ -1,3 +1,5 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            $LOAD_PATH.unshift(File.dirname(__FILE__))
         
     | 
| 
       2 
4 
     | 
    
         
             
            $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
         
     | 
| 
       3 
5 
     | 
    
         
             
            $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'support'))
         
     | 
| 
         @@ -12,17 +14,33 @@ Dir["#{File.dirname(__FILE__)}/support/*.rb"].each do |file| 
     | 
|
| 
       12 
14 
     | 
    
         
             
              require file
         
     | 
| 
       13 
15 
     | 
    
         
             
            end
         
     | 
| 
       14 
16 
     | 
    
         | 
| 
      
 17 
     | 
    
         
            +
            eager_load!
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
       15 
19 
     | 
    
         
             
            # The default value for this setting is true in a standard Rails app,
         
     | 
| 
       16 
20 
     | 
    
         
             
            # so it should be set to true here as well to reflect that.
         
     | 
| 
       17 
21 
     | 
    
         
             
            I18n.enforce_available_locales = true
         
     | 
| 
       18 
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 
     | 
    
         
            +
             
     | 
| 
       19 
32 
     | 
    
         
             
            RSpec.configure do |config|
         
     | 
| 
      
 33 
     | 
    
         
            +
              config.include Chunks
         
     | 
| 
       20 
34 
     | 
    
         
             
              config.include Rack::Test::Methods
         
     | 
| 
       21 
35 
     | 
    
         
             
              config.include Spec::Support::Helpers
         
     | 
| 
       22 
36 
     | 
    
         
             
              config.raise_errors_for_deprecations!
         
     | 
| 
       23 
37 
     | 
    
         
             
              config.filter_run_when_matching :focus
         
     | 
| 
      
 38 
     | 
    
         
            +
              config.warnings = true
         
     | 
| 
       24 
39 
     | 
    
         | 
| 
       25 
40 
     | 
    
         
             
              config.before(:each) { Grape::Util::InheritableSetting.reset_global! }
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              # Enable flags like --only-failures and --next-failure
         
     | 
| 
      
 43 
     | 
    
         
            +
              config.example_status_persistence_file_path = '.rspec_status'
         
     | 
| 
       26 
44 
     | 
    
         
             
            end
         
     | 
| 
       27 
45 
     | 
    
         | 
| 
       28 
46 
     | 
    
         
             
            require 'coveralls'
         
     | 
| 
         @@ -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
         
     | 
| 
         @@ -1,3 +1,5 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            # Versioning
         
     | 
| 
       2 
4 
     | 
    
         
             
            module Spec
         
     | 
| 
       3 
5 
     | 
    
         
             
              module Support
         
     | 
| 
         @@ -19,7 +21,7 @@ module Spec 
     | 
|
| 
       19 
21 
     | 
    
         
             
                    end
         
     | 
| 
       20 
22 
     | 
    
         
             
                  end
         
     | 
| 
       21 
23 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
                  def versioned_headers(options)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  def versioned_headers(**options)
         
     | 
| 
       23 
25 
     | 
    
         
             
                    case options[:using]
         
     | 
| 
       24 
26 
     | 
    
         
             
                    when :path
         
     | 
| 
       25 
27 
     | 
    
         
             
                      {}  # no-op
         
     | 
| 
         @@ -43,7 +45,7 @@ module Spec 
     | 
|
| 
       43 
45 
     | 
    
         | 
| 
       44 
46 
     | 
    
         
             
                  def versioned_get(path, version_name, version_options = {})
         
     | 
| 
       45 
47 
     | 
    
         
             
                    path    = versioned_path(version_options.merge(version: version_name, path: path))
         
     | 
| 
       46 
     | 
    
         
            -
                    headers = versioned_headers(version_options.merge(version: version_name))
         
     | 
| 
      
 48 
     | 
    
         
            +
                    headers = versioned_headers(**version_options.merge(version: version_name))
         
     | 
| 
       47 
49 
     | 
    
         
             
                    params = {}
         
     | 
| 
       48 
50 
     | 
    
         
             
                    if version_options[:using] == :param
         
     | 
| 
       49 
51 
     | 
    
         
             
                      params = { version_options[:parameter] => version_name }
         
     | 
    
        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.4.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:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2020-07-10 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: activesupport
         
     | 
| 
         @@ -38,6 +38,20 @@ dependencies: 
     | 
|
| 
       38 
38 
     | 
    
         
             
                - - ">="
         
     | 
| 
       39 
39 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
40 
     | 
    
         
             
                    version: '0'
         
     | 
| 
      
 41 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 42 
     | 
    
         
            +
              name: dry-types
         
     | 
| 
      
 43 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 44 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 45 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 46 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 47 
     | 
    
         
            +
                    version: '1.1'
         
     | 
| 
      
 48 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 49 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 50 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 51 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 52 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 53 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 54 
     | 
    
         
            +
                    version: '1.1'
         
     | 
| 
       41 
55 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
56 
     | 
    
         
             
              name: mustermann-grape
         
     | 
| 
       43 
57 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -80,20 +94,6 @@ dependencies: 
     | 
|
| 
       80 
94 
     | 
    
         
             
                - - ">="
         
     | 
| 
       81 
95 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       82 
96 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       83 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       84 
     | 
    
         
            -
              name: virtus
         
     | 
| 
       85 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       86 
     | 
    
         
            -
                requirements:
         
     | 
| 
       87 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       88 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       89 
     | 
    
         
            -
                    version: 1.0.0
         
     | 
| 
       90 
     | 
    
         
            -
              type: :runtime
         
     | 
| 
       91 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       92 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       93 
     | 
    
         
            -
                requirements:
         
     | 
| 
       94 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       95 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       96 
     | 
    
         
            -
                    version: 1.0.0
         
     | 
| 
       97 
97 
     | 
    
         
             
            description: A Ruby framework for rapid API development with great conventions.
         
     | 
| 
       98 
98 
     | 
    
         
             
            email:
         
     | 
| 
       99 
99 
     | 
    
         
             
            - michael@intridea.com
         
     | 
| 
         @@ -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
         
     | 
| 
         @@ -157,7 +158,6 @@ files: 
     | 
|
| 
       157 
158 
     | 
    
         
             
            - lib/grape/exceptions/validation_array_errors.rb
         
     | 
| 
       158 
159 
     | 
    
         
             
            - lib/grape/exceptions/validation_errors.rb
         
     | 
| 
       159 
160 
     | 
    
         
             
            - lib/grape/extensions/active_support/hash_with_indifferent_access.rb
         
     | 
| 
       160 
     | 
    
         
            -
            - lib/grape/extensions/deep_hash_with_indifferent_access.rb
         
     | 
| 
       161 
161 
     | 
    
         
             
            - lib/grape/extensions/deep_mergeable_hash.rb
         
     | 
| 
       162 
162 
     | 
    
         
             
            - lib/grape/extensions/deep_symbolize_hash.rb
         
     | 
| 
       163 
163 
     | 
    
         
             
            - lib/grape/extensions/hash.rb
         
     | 
| 
         @@ -197,17 +197,18 @@ 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 
     | 
    
         
            -
            - lib/grape/util/ 
     | 
| 
      
 204 
     | 
    
         
            +
            - lib/grape/util/cache.rb
         
     | 
| 
       205 
205 
     | 
    
         
             
            - lib/grape/util/endpoint_configuration.rb
         
     | 
| 
       206 
206 
     | 
    
         
             
            - lib/grape/util/env.rb
         
     | 
| 
       207 
207 
     | 
    
         
             
            - lib/grape/util/inheritable_setting.rb
         
     | 
| 
       208 
208 
     | 
    
         
             
            - lib/grape/util/inheritable_values.rb
         
     | 
| 
       209 
209 
     | 
    
         
             
            - lib/grape/util/json.rb
         
     | 
| 
       210 
210 
     | 
    
         
             
            - lib/grape/util/lazy_block.rb
         
     | 
| 
      
 211 
     | 
    
         
            +
            - lib/grape/util/lazy_object.rb
         
     | 
| 
       211 
212 
     | 
    
         
             
            - lib/grape/util/lazy_value.rb
         
     | 
| 
       212 
213 
     | 
    
         
             
            - lib/grape/util/registrable.rb
         
     | 
| 
       213 
214 
     | 
    
         
             
            - lib/grape/util/reverse_stackable_values.rb
         
     | 
| 
         @@ -220,14 +221,17 @@ files: 
     | 
|
| 
       220 
221 
     | 
    
         
             
            - lib/grape/validations/params_scope.rb
         
     | 
| 
       221 
222 
     | 
    
         
             
            - lib/grape/validations/single_attribute_iterator.rb
         
     | 
| 
       222 
223 
     | 
    
         
             
            - lib/grape/validations/types.rb
         
     | 
| 
      
 224 
     | 
    
         
            +
            - lib/grape/validations/types/array_coercer.rb
         
     | 
| 
       223 
225 
     | 
    
         
             
            - lib/grape/validations/types/build_coercer.rb
         
     | 
| 
       224 
226 
     | 
    
         
             
            - lib/grape/validations/types/custom_type_coercer.rb
         
     | 
| 
       225 
227 
     | 
    
         
             
            - lib/grape/validations/types/custom_type_collection_coercer.rb
         
     | 
| 
      
 228 
     | 
    
         
            +
            - lib/grape/validations/types/dry_type_coercer.rb
         
     | 
| 
       226 
229 
     | 
    
         
             
            - lib/grape/validations/types/file.rb
         
     | 
| 
       227 
230 
     | 
    
         
             
            - lib/grape/validations/types/json.rb
         
     | 
| 
       228 
231 
     | 
    
         
             
            - lib/grape/validations/types/multiple_type_coercer.rb
         
     | 
| 
      
 232 
     | 
    
         
            +
            - lib/grape/validations/types/primitive_coercer.rb
         
     | 
| 
      
 233 
     | 
    
         
            +
            - lib/grape/validations/types/set_coercer.rb
         
     | 
| 
       229 
234 
     | 
    
         
             
            - lib/grape/validations/types/variant_collection_coercer.rb
         
     | 
| 
       230 
     | 
    
         
            -
            - lib/grape/validations/types/virtus_collection_patch.rb
         
     | 
| 
       231 
235 
     | 
    
         
             
            - lib/grape/validations/validator_factory.rb
         
     | 
| 
       232 
236 
     | 
    
         
             
            - lib/grape/validations/validators/all_or_none.rb
         
     | 
| 
       233 
237 
     | 
    
         
             
            - lib/grape/validations/validators/allow_blank.rb
         
     | 
| 
         @@ -249,6 +253,7 @@ files: 
     | 
|
| 
       249 
253 
     | 
    
         
             
            - spec/grape/api/deeply_included_options_spec.rb
         
     | 
| 
       250 
254 
     | 
    
         
             
            - spec/grape/api/defines_boolean_in_params_spec.rb
         
     | 
| 
       251 
255 
     | 
    
         
             
            - spec/grape/api/inherited_helpers_spec.rb
         
     | 
| 
      
 256 
     | 
    
         
            +
            - spec/grape/api/instance_spec.rb
         
     | 
| 
       252 
257 
     | 
    
         
             
            - spec/grape/api/invalid_format_spec.rb
         
     | 
| 
       253 
258 
     | 
    
         
             
            - spec/grape/api/namespace_parameters_in_route_spec.rb
         
     | 
| 
       254 
259 
     | 
    
         
             
            - spec/grape/api/nested_helpers_spec.rb
         
     | 
| 
         @@ -327,6 +332,9 @@ files: 
     | 
|
| 
       327 
332 
     | 
    
         
             
            - spec/grape/validations/multiple_attributes_iterator_spec.rb
         
     | 
| 
       328 
333 
     | 
    
         
             
            - spec/grape/validations/params_scope_spec.rb
         
     | 
| 
       329 
334 
     | 
    
         
             
            - spec/grape/validations/single_attribute_iterator_spec.rb
         
     | 
| 
      
 335 
     | 
    
         
            +
            - spec/grape/validations/types/array_coercer_spec.rb
         
     | 
| 
      
 336 
     | 
    
         
            +
            - spec/grape/validations/types/primitive_coercer_spec.rb
         
     | 
| 
      
 337 
     | 
    
         
            +
            - spec/grape/validations/types/set_coercer_spec.rb
         
     | 
| 
       330 
338 
     | 
    
         
             
            - spec/grape/validations/types_spec.rb
         
     | 
| 
       331 
339 
     | 
    
         
             
            - spec/grape/validations/validators/all_or_none_spec.rb
         
     | 
| 
       332 
340 
     | 
    
         
             
            - spec/grape/validations/validators/allow_blank_spec.rb
         
     | 
| 
         @@ -342,12 +350,14 @@ files: 
     | 
|
| 
       342 
350 
     | 
    
         
             
            - spec/grape/validations/validators/values_spec.rb
         
     | 
| 
       343 
351 
     | 
    
         
             
            - spec/grape/validations/validators/zh-CN.yml
         
     | 
| 
       344 
352 
     | 
    
         
             
            - spec/grape/validations_spec.rb
         
     | 
| 
      
 353 
     | 
    
         
            +
            - spec/integration/eager_load/eager_load_spec.rb
         
     | 
| 
       345 
354 
     | 
    
         
             
            - spec/integration/multi_json/json_spec.rb
         
     | 
| 
       346 
355 
     | 
    
         
             
            - spec/integration/multi_xml/xml_spec.rb
         
     | 
| 
       347 
356 
     | 
    
         
             
            - spec/shared/versioning_examples.rb
         
     | 
| 
       348 
357 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       349 
358 
     | 
    
         
             
            - spec/support/basic_auth_encode_helpers.rb
         
     | 
| 
       350 
359 
     | 
    
         
             
            - spec/support/content_type_helpers.rb
         
     | 
| 
      
 360 
     | 
    
         
            +
            - spec/support/eager_load.rb
         
     | 
| 
       351 
361 
     | 
    
         
             
            - spec/support/endpoint_faker.rb
         
     | 
| 
       352 
362 
     | 
    
         
             
            - spec/support/file_streamer.rb
         
     | 
| 
       353 
363 
     | 
    
         
             
            - spec/support/integer_helpers.rb
         
     | 
| 
         @@ -355,8 +365,12 @@ files: 
     | 
|
| 
       355 
365 
     | 
    
         
             
            homepage: https://github.com/ruby-grape/grape
         
     | 
| 
       356 
366 
     | 
    
         
             
            licenses:
         
     | 
| 
       357 
367 
     | 
    
         
             
            - MIT
         
     | 
| 
       358 
     | 
    
         
            -
            metadata: 
     | 
| 
       359 
     | 
    
         
            -
             
     | 
| 
      
 368 
     | 
    
         
            +
            metadata:
         
     | 
| 
      
 369 
     | 
    
         
            +
              bug_tracker_uri: https://github.com/ruby-grape/grape/issues
         
     | 
| 
      
 370 
     | 
    
         
            +
              changelog_uri: https://github.com/ruby-grape/grape/blob/v1.4.0/CHANGELOG.md
         
     | 
| 
      
 371 
     | 
    
         
            +
              documentation_uri: https://www.rubydoc.info/gems/grape/1.4.0
         
     | 
| 
      
 372 
     | 
    
         
            +
              source_code_uri: https://github.com/ruby-grape/grape/tree/v1.4.0
         
     | 
| 
      
 373 
     | 
    
         
            +
            post_install_message:
         
     | 
| 
       360 
374 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       361 
375 
     | 
    
         
             
            require_paths:
         
     | 
| 
       362 
376 
     | 
    
         
             
            - lib
         
     | 
| 
         @@ -364,19 +378,20 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       364 
378 
     | 
    
         
             
              requirements:
         
     | 
| 
       365 
379 
     | 
    
         
             
              - - ">="
         
     | 
| 
       366 
380 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       367 
     | 
    
         
            -
                  version:  
     | 
| 
      
 381 
     | 
    
         
            +
                  version: 2.4.0
         
     | 
| 
       368 
382 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       369 
383 
     | 
    
         
             
              requirements:
         
     | 
| 
       370 
384 
     | 
    
         
             
              - - ">="
         
     | 
| 
       371 
385 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       372 
386 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       373 
387 
     | 
    
         
             
            requirements: []
         
     | 
| 
       374 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
       375 
     | 
    
         
            -
            signing_key: 
     | 
| 
      
 388 
     | 
    
         
            +
            rubygems_version: 3.1.3
         
     | 
| 
      
 389 
     | 
    
         
            +
            signing_key:
         
     | 
| 
       376 
390 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       377 
391 
     | 
    
         
             
            summary: A simple Ruby framework for building REST-like APIs.
         
     | 
| 
       378 
392 
     | 
    
         
             
            test_files:
         
     | 
| 
       379 
393 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
      
 394 
     | 
    
         
            +
            - spec/integration/eager_load/eager_load_spec.rb
         
     | 
| 
       380 
395 
     | 
    
         
             
            - spec/integration/multi_xml/xml_spec.rb
         
     | 
| 
       381 
396 
     | 
    
         
             
            - spec/integration/multi_json/json_spec.rb
         
     | 
| 
       382 
397 
     | 
    
         
             
            - spec/shared/versioning_examples.rb
         
     | 
| 
         @@ -385,6 +400,7 @@ test_files: 
     | 
|
| 
       385 
400 
     | 
    
         
             
            - spec/support/file_streamer.rb
         
     | 
| 
       386 
401 
     | 
    
         
             
            - spec/support/versioned_helpers.rb
         
     | 
| 
       387 
402 
     | 
    
         
             
            - spec/support/content_type_helpers.rb
         
     | 
| 
      
 403 
     | 
    
         
            +
            - spec/support/eager_load.rb
         
     | 
| 
       388 
404 
     | 
    
         
             
            - spec/support/integer_helpers.rb
         
     | 
| 
       389 
405 
     | 
    
         
             
            - spec/grape/middleware/error_spec.rb
         
     | 
| 
       390 
406 
     | 
    
         
             
            - spec/grape/middleware/globals_spec.rb
         
     | 
| 
         @@ -429,6 +445,9 @@ test_files: 
     | 
|
| 
       429 
445 
     | 
    
         
             
            - spec/grape/presenters/presenter_spec.rb
         
     | 
| 
       430 
446 
     | 
    
         
             
            - spec/grape/validations/single_attribute_iterator_spec.rb
         
     | 
| 
       431 
447 
     | 
    
         
             
            - spec/grape/validations/attributes_iterator_spec.rb
         
     | 
| 
      
 448 
     | 
    
         
            +
            - spec/grape/validations/types/primitive_coercer_spec.rb
         
     | 
| 
      
 449 
     | 
    
         
            +
            - spec/grape/validations/types/set_coercer_spec.rb
         
     | 
| 
      
 450 
     | 
    
         
            +
            - spec/grape/validations/types/array_coercer_spec.rb
         
     | 
| 
       432 
451 
     | 
    
         
             
            - spec/grape/validations/params_scope_spec.rb
         
     | 
| 
       433 
452 
     | 
    
         
             
            - spec/grape/validations/instance_behaivour_spec.rb
         
     | 
| 
       434 
453 
     | 
    
         
             
            - spec/grape/validations/multiple_attributes_iterator_spec.rb
         
     | 
| 
         @@ -458,6 +477,7 @@ test_files: 
     | 
|
| 
       458 
477 
     | 
    
         
             
            - spec/grape/api/defines_boolean_in_params_spec.rb
         
     | 
| 
       459 
478 
     | 
    
         
             
            - spec/grape/api/invalid_format_spec.rb
         
     | 
| 
       460 
479 
     | 
    
         
             
            - spec/grape/api/required_parameters_in_route_spec.rb
         
     | 
| 
      
 480 
     | 
    
         
            +
            - spec/grape/api/instance_spec.rb
         
     | 
| 
       461 
481 
     | 
    
         
             
            - spec/grape/api/namespace_parameters_in_route_spec.rb
         
     | 
| 
       462 
482 
     | 
    
         
             
            - spec/grape/api/recognize_path_spec.rb
         
     | 
| 
       463 
483 
     | 
    
         
             
            - spec/grape/api/shared_helpers_exactly_one_of_spec.rb
         
     | 
| 
         @@ -1,18 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module Grape
         
     | 
| 
       2 
     | 
    
         
            -
              module Extensions
         
     | 
| 
       3 
     | 
    
         
            -
                module DeepHashWithIndifferentAccess
         
     | 
| 
       4 
     | 
    
         
            -
                  def self.deep_hash_with_indifferent_access(object)
         
     | 
| 
       5 
     | 
    
         
            -
                    case object
         
     | 
| 
       6 
     | 
    
         
            -
                    when ::Hash
         
     | 
| 
       7 
     | 
    
         
            -
                      object.inject(::ActiveSupport::HashWithIndifferentAccess.new) do |new_hash, (key, value)|
         
     | 
| 
       8 
     | 
    
         
            -
                        new_hash.merge!(key => deep_hash_with_indifferent_access(value))
         
     | 
| 
       9 
     | 
    
         
            -
                      end
         
     | 
| 
       10 
     | 
    
         
            -
                    when ::Array
         
     | 
| 
       11 
     | 
    
         
            -
                      object.map { |element| deep_hash_with_indifferent_access(element) }
         
     | 
| 
       12 
     | 
    
         
            -
                    else
         
     | 
| 
       13 
     | 
    
         
            -
                      object
         
     | 
| 
       14 
     | 
    
         
            -
                    end
         
     | 
| 
       15 
     | 
    
         
            -
                  end
         
     | 
| 
       16 
     | 
    
         
            -
                end
         
     | 
| 
       17 
     | 
    
         
            -
              end
         
     | 
| 
       18 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,26 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module Grape
         
     | 
| 
       2 
     | 
    
         
            -
              module ContentTypes
         
     | 
| 
       3 
     | 
    
         
            -
                # Content types are listed in order of preference.
         
     | 
| 
       4 
     | 
    
         
            -
                CONTENT_TYPES = { # rubocop:disable Style/MutableConstant
         
     | 
| 
       5 
     | 
    
         
            -
                  xml: 'application/xml',
         
     | 
| 
       6 
     | 
    
         
            -
                  serializable_hash: 'application/json',
         
     | 
| 
       7 
     | 
    
         
            -
                  json: 'application/json',
         
     | 
| 
       8 
     | 
    
         
            -
                  binary: 'application/octet-stream',
         
     | 
| 
       9 
     | 
    
         
            -
                  txt: 'text/plain'
         
     | 
| 
       10 
     | 
    
         
            -
                }
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                def self.content_types_for_settings(settings)
         
     | 
| 
       13 
     | 
    
         
            -
                  return if settings.blank?
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                  settings.each_with_object({}) { |value, result| result.merge!(value) }
         
     | 
| 
       16 
     | 
    
         
            -
                end
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                def self.content_types_for(from_settings)
         
     | 
| 
       19 
     | 
    
         
            -
                  if from_settings.present?
         
     | 
| 
       20 
     | 
    
         
            -
                    from_settings
         
     | 
| 
       21 
     | 
    
         
            -
                  else
         
     | 
| 
       22 
     | 
    
         
            -
                    Grape::ContentTypes::CONTENT_TYPES
         
     | 
| 
       23 
     | 
    
         
            -
                  end
         
     | 
| 
       24 
     | 
    
         
            -
                end
         
     | 
| 
       25 
     | 
    
         
            -
              end
         
     | 
| 
       26 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,16 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'virtus/attribute/collection'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            # See https://github.com/solnic/virtus/pull/343
         
     | 
| 
       4 
     | 
    
         
            -
            # This monkey-patch fixes type validation for collections,
         
     | 
| 
       5 
     | 
    
         
            -
            # ensuring that type assertions are applied to collection
         
     | 
| 
       6 
     | 
    
         
            -
            # members.
         
     | 
| 
       7 
     | 
    
         
            -
            #
         
     | 
| 
       8 
     | 
    
         
            -
            # This patch duplicates the code in the above pull request.
         
     | 
| 
       9 
     | 
    
         
            -
            # Once the request, or equivalent functionality, has been
         
     | 
| 
       10 
     | 
    
         
            -
            # published into the +virtus+ gem this file should be deleted.
         
     | 
| 
       11 
     | 
    
         
            -
            Virtus::Attribute::Collection.class_eval do
         
     | 
| 
       12 
     | 
    
         
            -
              # @api public
         
     | 
| 
       13 
     | 
    
         
            -
              def value_coerced?(value)
         
     | 
| 
       14 
     | 
    
         
            -
                super && value.all? { |item| member_type.value_coerced? item }
         
     | 
| 
       15 
     | 
    
         
            -
              end
         
     | 
| 
       16 
     | 
    
         
            -
            end
         
     |