grape 1.2.5 → 1.3.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 +45 -0
- data/README.md +7 -6
- data/UPGRADING.md +43 -0
- data/grape.gemspec +10 -1
- data/lib/grape/api/helpers.rb +2 -0
- data/lib/grape/api/instance.rb +8 -6
- data/lib/grape/api.rb +4 -2
- 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 +15 -11
- 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 +2 -0
- data/lib/grape/eager_load.rb +2 -0
- data/lib/grape/endpoint.rb +13 -7
- 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/error_formatter.rb +3 -1
- 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/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/formatter.rb +5 -3
- data/lib/grape/http/headers.rb +49 -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 +5 -5
- data/lib/grape/middleware/error.rb +3 -1
- data/lib/grape/middleware/filter.rb +2 -0
- data/lib/grape/middleware/formatter.rb +5 -3
- 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/accept_version_header.rb +2 -0
- data/lib/grape/middleware/versioner/header.rb +5 -3
- data/lib/grape/middleware/versioner/param.rb +3 -1
- data/lib/grape/middleware/versioner/parse_media_type_patch.rb +2 -0
- data/lib/grape/middleware/versioner/path.rb +3 -1
- data/lib/grape/middleware/versioner.rb +2 -0
- data/lib/grape/namespace.rb +14 -2
- data/lib/grape/parser/json.rb +2 -0
- data/lib/grape/parser/xml.rb +2 -0
- data/lib/grape/parser.rb +3 -1
- data/lib/grape/path.rb +13 -1
- data/lib/grape/presenters/presenter.rb +2 -0
- data/lib/grape/request.rb +15 -8
- data/lib/grape/router/attribute_translator.rb +18 -8
- data/lib/grape/router/pattern.rb +20 -16
- data/lib/grape/router/route.rb +9 -4
- data/lib/grape/router.rb +26 -12
- data/lib/grape/serve_file/file_body.rb +2 -0
- data/lib/grape/serve_file/file_response.rb +2 -0
- data/lib/grape/serve_file/sendfile_response.rb +2 -0
- data/lib/grape/util/base_inheritable.rb +6 -0
- 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 +3 -1
- data/lib/grape/util/stackable_values.rb +9 -21
- data/lib/grape/util/strict_hash_configuration.rb +2 -0
- data/lib/grape/util/xml.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 +24 -11
- data/lib/grape/validations/single_attribute_iterator.rb +13 -2
- data/lib/grape/validations/types/array_coercer.rb +56 -0
- data/lib/grape/validations/types/build_coercer.rb +49 -48
- 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 +41 -0
- data/lib/grape/validations/types/file.rb +11 -9
- data/lib/grape/validations/types/json.rb +11 -8
- data/lib/grape/validations/types/multiple_type_coercer.rb +14 -33
- data/lib/grape/validations/types/primitive_coercer.rb +61 -0
- data/lib/grape/validations/types/set_coercer.rb +38 -0
- data/lib/grape/validations/types/variant_collection_coercer.rb +4 -12
- data/lib/grape/validations/types.rb +7 -30
- 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 +44 -27
- data/lib/grape/validations/validators/default.rb +2 -0
- 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 +3 -1
- data/lib/grape/validations/validators/same_as.rb +6 -3
- data/lib/grape/validations/validators/values.rb +17 -5
- data/lib/grape/validations.rb +2 -0
- data/lib/grape/version.rb +3 -1
- data/lib/grape.rb +4 -5
- 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 +54 -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 +34 -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 +2 -0
- 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 +3 -1
- 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 +2 -0
- 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 +2 -0
- 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 +2 -0
- 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/primitive_coercer_spec.rb +75 -0
- data/spec/grape/validations/types_spec.rb +8 -35
- 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 +51 -110
- data/spec/grape/validations/validators/default_spec.rb +2 -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 +29 -4
- data/spec/grape/validations_spec.rb +69 -15
- 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 +126 -112
- 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
    
        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.3.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:  | 
| 11 | 
            +
            date: 2020-03-11 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
         | 
| @@ -201,13 +201,14 @@ files: | |
| 201 201 | 
             
            - lib/grape/serve_file/file_response.rb
         | 
| 202 202 | 
             
            - lib/grape/serve_file/sendfile_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,7 @@ 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/primitive_coercer_spec.rb
         | 
| 330 336 | 
             
            - spec/grape/validations/types_spec.rb
         | 
| 331 337 | 
             
            - spec/grape/validations/validators/all_or_none_spec.rb
         | 
| 332 338 | 
             
            - spec/grape/validations/validators/allow_blank_spec.rb
         | 
| @@ -348,6 +354,7 @@ files: | |
| 348 354 | 
             
            - spec/spec_helper.rb
         | 
| 349 355 | 
             
            - spec/support/basic_auth_encode_helpers.rb
         | 
| 350 356 | 
             
            - spec/support/content_type_helpers.rb
         | 
| 357 | 
            +
            - spec/support/eager_load.rb
         | 
| 351 358 | 
             
            - spec/support/endpoint_faker.rb
         | 
| 352 359 | 
             
            - spec/support/file_streamer.rb
         | 
| 353 360 | 
             
            - spec/support/integer_helpers.rb
         | 
| @@ -355,7 +362,11 @@ files: | |
| 355 362 | 
             
            homepage: https://github.com/ruby-grape/grape
         | 
| 356 363 | 
             
            licenses:
         | 
| 357 364 | 
             
            - MIT
         | 
| 358 | 
            -
            metadata: | 
| 365 | 
            +
            metadata:
         | 
| 366 | 
            +
              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
         | 
| 359 370 | 
             
            post_install_message: 
         | 
| 360 371 | 
             
            rdoc_options: []
         | 
| 361 372 | 
             
            require_paths:
         | 
| @@ -364,7 +375,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 364 375 | 
             
              requirements:
         | 
| 365 376 | 
             
              - - ">="
         | 
| 366 377 | 
             
                - !ruby/object:Gem::Version
         | 
| 367 | 
            -
                  version:  | 
| 378 | 
            +
                  version: 2.4.0
         | 
| 368 379 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 369 380 | 
             
              requirements:
         | 
| 370 381 | 
             
              - - ">="
         | 
| @@ -376,110 +387,113 @@ signing_key: | |
| 376 387 | 
             
            specification_version: 4
         | 
| 377 388 | 
             
            summary: A simple Ruby framework for building REST-like APIs.
         | 
| 378 389 | 
             
            test_files:
         | 
| 379 | 
            -
            - spec/spec_helper.rb
         | 
| 380 | 
            -
            - spec/integration/multi_xml/xml_spec.rb
         | 
| 381 | 
            -
            - spec/integration/multi_json/json_spec.rb
         | 
| 382 390 | 
             
            - spec/shared/versioning_examples.rb
         | 
| 383 | 
            -
            - spec/support/basic_auth_encode_helpers.rb
         | 
| 384 | 
            -
            - spec/support/endpoint_faker.rb
         | 
| 385 | 
            -
            - spec/support/file_streamer.rb
         | 
| 386 391 | 
             
            - spec/support/versioned_helpers.rb
         | 
| 387 392 | 
             
            - spec/support/content_type_helpers.rb
         | 
| 393 | 
            +
            - spec/support/eager_load.rb
         | 
| 394 | 
            +
            - spec/support/basic_auth_encode_helpers.rb
         | 
| 395 | 
            +
            - spec/support/file_streamer.rb
         | 
| 396 | 
            +
            - spec/support/endpoint_faker.rb
         | 
| 388 397 | 
             
            - spec/support/integer_helpers.rb
         | 
| 389 | 
            -
            - spec/grape/ | 
| 390 | 
            -
            - spec/grape/ | 
| 391 | 
            -
            - spec/grape/ | 
| 392 | 
            -
            - spec/grape/ | 
| 393 | 
            -
            - spec/grape/ | 
| 394 | 
            -
            - spec/grape/ | 
| 395 | 
            -
            - spec/grape/ | 
| 396 | 
            -
            - spec/grape/ | 
| 397 | 
            -
            - spec/grape/ | 
| 398 | 
            -
            - spec/grape/ | 
| 399 | 
            -
            - spec/grape/ | 
| 400 | 
            -
            - spec/grape/ | 
| 401 | 
            -
            - spec/grape/ | 
| 402 | 
            -
            - spec/grape/ | 
| 403 | 
            -
            - spec/grape/ | 
| 404 | 
            -
            - spec/grape/ | 
| 405 | 
            -
            - spec/grape/ | 
| 406 | 
            -
            - spec/grape/ | 
| 407 | 
            -
            - spec/grape/util/reverse_stackable_values_spec.rb
         | 
| 408 | 
            -
            - spec/grape/util/stackable_values_spec.rb
         | 
| 409 | 
            -
            - spec/grape/util/inheritable_setting_spec.rb
         | 
| 410 | 
            -
            - spec/grape/util/strict_hash_configuration_spec.rb
         | 
| 411 | 
            -
            - spec/grape/util/inheritable_values_spec.rb
         | 
| 412 | 
            -
            - spec/grape/integration/rack_spec.rb
         | 
| 413 | 
            -
            - spec/grape/integration/rack_sendfile_spec.rb
         | 
| 414 | 
            -
            - spec/grape/integration/global_namespace_function_spec.rb
         | 
| 415 | 
            -
            - spec/grape/validations_spec.rb
         | 
| 416 | 
            -
            - spec/grape/entity_spec.rb
         | 
| 417 | 
            -
            - spec/grape/exceptions/validation_spec.rb
         | 
| 418 | 
            -
            - spec/grape/exceptions/invalid_accept_header_spec.rb
         | 
| 419 | 
            -
            - spec/grape/exceptions/missing_option_spec.rb
         | 
| 420 | 
            -
            - spec/grape/exceptions/invalid_response_spec.rb
         | 
| 421 | 
            -
            - spec/grape/exceptions/body_parse_errors_spec.rb
         | 
| 422 | 
            -
            - spec/grape/exceptions/invalid_formatter_spec.rb
         | 
| 423 | 
            -
            - spec/grape/exceptions/missing_mime_type_spec.rb
         | 
| 424 | 
            -
            - spec/grape/exceptions/unknown_options_spec.rb
         | 
| 425 | 
            -
            - spec/grape/exceptions/validation_errors_spec.rb
         | 
| 426 | 
            -
            - spec/grape/exceptions/unknown_validator_spec.rb
         | 
| 427 | 
            -
            - spec/grape/exceptions/invalid_versioner_option_spec.rb
         | 
| 428 | 
            -
            - spec/grape/exceptions/base_spec.rb
         | 
| 429 | 
            -
            - spec/grape/presenters/presenter_spec.rb
         | 
| 430 | 
            -
            - spec/grape/validations/single_attribute_iterator_spec.rb
         | 
| 431 | 
            -
            - spec/grape/validations/attributes_iterator_spec.rb
         | 
| 432 | 
            -
            - spec/grape/validations/params_scope_spec.rb
         | 
| 433 | 
            -
            - spec/grape/validations/instance_behaivour_spec.rb
         | 
| 434 | 
            -
            - spec/grape/validations/multiple_attributes_iterator_spec.rb
         | 
| 398 | 
            +
            - spec/grape/api/namespace_parameters_in_route_spec.rb
         | 
| 399 | 
            +
            - spec/grape/api/routes_with_requirements_spec.rb
         | 
| 400 | 
            +
            - spec/grape/api/nested_helpers_spec.rb
         | 
| 401 | 
            +
            - spec/grape/api/required_parameters_in_route_spec.rb
         | 
| 402 | 
            +
            - spec/grape/api/shared_helpers_exactly_one_of_spec.rb
         | 
| 403 | 
            +
            - spec/grape/api/parameters_modification_spec.rb
         | 
| 404 | 
            +
            - spec/grape/api/optional_parameters_in_route_spec.rb
         | 
| 405 | 
            +
            - spec/grape/api/inherited_helpers_spec.rb
         | 
| 406 | 
            +
            - spec/grape/api/required_parameters_with_invalid_method_spec.rb
         | 
| 407 | 
            +
            - spec/grape/api/custom_validations_spec.rb
         | 
| 408 | 
            +
            - spec/grape/api/defines_boolean_in_params_spec.rb
         | 
| 409 | 
            +
            - spec/grape/api/shared_helpers_spec.rb
         | 
| 410 | 
            +
            - spec/grape/api/invalid_format_spec.rb
         | 
| 411 | 
            +
            - spec/grape/api/deeply_included_options_spec.rb
         | 
| 412 | 
            +
            - spec/grape/api/instance_spec.rb
         | 
| 413 | 
            +
            - spec/grape/api/patch_method_helpers_spec.rb
         | 
| 414 | 
            +
            - spec/grape/api/recognize_path_spec.rb
         | 
| 415 | 
            +
            - spec/grape/api_remount_spec.rb
         | 
| 435 416 | 
             
            - spec/grape/validations/types_spec.rb
         | 
| 417 | 
            +
            - spec/grape/validations/attributes_iterator_spec.rb
         | 
| 418 | 
            +
            - spec/grape/validations/types/primitive_coercer_spec.rb
         | 
| 436 419 | 
             
            - spec/grape/validations/validators/regexp_spec.rb
         | 
| 420 | 
            +
            - spec/grape/validations/validators/default_spec.rb
         | 
| 421 | 
            +
            - spec/grape/validations/validators/values_spec.rb
         | 
| 422 | 
            +
            - spec/grape/validations/validators/same_as_spec.rb
         | 
| 437 423 | 
             
            - spec/grape/validations/validators/mutual_exclusion_spec.rb
         | 
| 438 | 
            -
            - spec/grape/validations/validators/exactly_one_of_spec.rb
         | 
| 439 424 | 
             
            - spec/grape/validations/validators/except_values_spec.rb
         | 
| 440 | 
            -
            - spec/grape/validations/validators/ | 
| 441 | 
            -
            - spec/grape/validations/validators/all_or_none_spec.rb
         | 
| 425 | 
            +
            - spec/grape/validations/validators/exactly_one_of_spec.rb
         | 
| 442 426 | 
             
            - spec/grape/validations/validators/allow_blank_spec.rb
         | 
| 443 | 
            -
            - spec/grape/validations/validators/same_as_spec.rb
         | 
| 444 | 
            -
            - spec/grape/validations/validators/default_spec.rb
         | 
| 445 | 
            -
            - spec/grape/validations/validators/values_spec.rb
         | 
| 446 | 
            -
            - spec/grape/validations/validators/at_least_one_of_spec.rb
         | 
| 447 427 | 
             
            - spec/grape/validations/validators/coerce_spec.rb
         | 
| 428 | 
            +
            - spec/grape/validations/validators/presence_spec.rb
         | 
| 429 | 
            +
            - spec/grape/validations/validators/at_least_one_of_spec.rb
         | 
| 448 430 | 
             
            - spec/grape/validations/validators/zh-CN.yml
         | 
| 449 | 
            -
            - spec/grape/ | 
| 450 | 
            -
            - spec/grape/ | 
| 451 | 
            -
            - spec/grape/ | 
| 431 | 
            +
            - spec/grape/validations/validators/all_or_none_spec.rb
         | 
| 432 | 
            +
            - spec/grape/validations/params_scope_spec.rb
         | 
| 433 | 
            +
            - spec/grape/validations/multiple_attributes_iterator_spec.rb
         | 
| 434 | 
            +
            - spec/grape/validations/instance_behaivour_spec.rb
         | 
| 435 | 
            +
            - spec/grape/validations/single_attribute_iterator_spec.rb
         | 
| 436 | 
            +
            - spec/grape/config_spec.rb
         | 
| 452 437 | 
             
            - spec/grape/parser_spec.rb
         | 
| 453 | 
            -
            - spec/grape/ | 
| 454 | 
            -
            - spec/grape/ | 
| 455 | 
            -
            - spec/grape/ | 
| 456 | 
            -
            - spec/grape/ | 
| 457 | 
            -
            - spec/grape/ | 
| 458 | 
            -
            - spec/grape/ | 
| 459 | 
            -
            - spec/grape/ | 
| 460 | 
            -
            - spec/grape/ | 
| 461 | 
            -
            - spec/grape/ | 
| 462 | 
            -
            - spec/grape/ | 
| 463 | 
            -
            - spec/grape/ | 
| 464 | 
            -
            - spec/grape/ | 
| 465 | 
            -
            - spec/grape/ | 
| 466 | 
            -
            - spec/grape/ | 
| 467 | 
            -
            - spec/grape/ | 
| 468 | 
            -
            - spec/grape/ | 
| 469 | 
            -
            - spec/grape/ | 
| 470 | 
            -
            - spec/grape/ | 
| 471 | 
            -
            - spec/grape/ | 
| 472 | 
            -
            - spec/grape/ | 
| 473 | 
            -
            - spec/grape/ | 
| 474 | 
            -
            - spec/grape/ | 
| 438 | 
            +
            - spec/grape/exceptions/body_parse_errors_spec.rb
         | 
| 439 | 
            +
            - spec/grape/exceptions/missing_option_spec.rb
         | 
| 440 | 
            +
            - spec/grape/exceptions/invalid_accept_header_spec.rb
         | 
| 441 | 
            +
            - spec/grape/exceptions/validation_spec.rb
         | 
| 442 | 
            +
            - spec/grape/exceptions/unknown_validator_spec.rb
         | 
| 443 | 
            +
            - spec/grape/exceptions/validation_errors_spec.rb
         | 
| 444 | 
            +
            - spec/grape/exceptions/invalid_response_spec.rb
         | 
| 445 | 
            +
            - spec/grape/exceptions/unknown_options_spec.rb
         | 
| 446 | 
            +
            - spec/grape/exceptions/invalid_formatter_spec.rb
         | 
| 447 | 
            +
            - spec/grape/exceptions/invalid_versioner_option_spec.rb
         | 
| 448 | 
            +
            - spec/grape/exceptions/missing_mime_type_spec.rb
         | 
| 449 | 
            +
            - spec/grape/exceptions/base_spec.rb
         | 
| 450 | 
            +
            - spec/grape/path_spec.rb
         | 
| 451 | 
            +
            - spec/grape/util/stackable_values_spec.rb
         | 
| 452 | 
            +
            - spec/grape/util/strict_hash_configuration_spec.rb
         | 
| 453 | 
            +
            - spec/grape/util/inheritable_setting_spec.rb
         | 
| 454 | 
            +
            - spec/grape/util/reverse_stackable_values_spec.rb
         | 
| 455 | 
            +
            - spec/grape/util/inheritable_values_spec.rb
         | 
| 456 | 
            +
            - spec/grape/extensions/param_builders/hash_with_indifferent_access_spec.rb
         | 
| 457 | 
            +
            - spec/grape/extensions/param_builders/hash_spec.rb
         | 
| 458 | 
            +
            - spec/grape/extensions/param_builders/hashie/mash_spec.rb
         | 
| 459 | 
            +
            - spec/grape/integration/rack_spec.rb
         | 
| 460 | 
            +
            - spec/grape/integration/rack_sendfile_spec.rb
         | 
| 461 | 
            +
            - spec/grape/integration/global_namespace_function_spec.rb
         | 
| 462 | 
            +
            - spec/grape/presenters/presenter_spec.rb
         | 
| 463 | 
            +
            - spec/grape/endpoint_spec.rb
         | 
| 464 | 
            +
            - spec/grape/api_spec.rb
         | 
| 465 | 
            +
            - spec/grape/middleware/exception_spec.rb
         | 
| 466 | 
            +
            - spec/grape/middleware/versioner/param_spec.rb
         | 
| 467 | 
            +
            - spec/grape/middleware/versioner/header_spec.rb
         | 
| 468 | 
            +
            - spec/grape/middleware/versioner/path_spec.rb
         | 
| 469 | 
            +
            - spec/grape/middleware/versioner/accept_version_header_spec.rb
         | 
| 470 | 
            +
            - spec/grape/middleware/globals_spec.rb
         | 
| 471 | 
            +
            - spec/grape/middleware/stack_spec.rb
         | 
| 472 | 
            +
            - spec/grape/middleware/formatter_spec.rb
         | 
| 473 | 
            +
            - spec/grape/middleware/error_spec.rb
         | 
| 474 | 
            +
            - spec/grape/middleware/auth/dsl_spec.rb
         | 
| 475 | 
            +
            - spec/grape/middleware/auth/strategies_spec.rb
         | 
| 476 | 
            +
            - spec/grape/middleware/auth/base_spec.rb
         | 
| 477 | 
            +
            - spec/grape/middleware/versioner_spec.rb
         | 
| 478 | 
            +
            - spec/grape/middleware/base_spec.rb
         | 
| 479 | 
            +
            - spec/grape/entity_spec.rb
         | 
| 480 | 
            +
            - spec/grape/dsl/settings_spec.rb
         | 
| 481 | 
            +
            - spec/grape/dsl/callbacks_spec.rb
         | 
| 482 | 
            +
            - spec/grape/dsl/middleware_spec.rb
         | 
| 483 | 
            +
            - spec/grape/dsl/inside_route_spec.rb
         | 
| 475 484 | 
             
            - spec/grape/dsl/configuration_spec.rb
         | 
| 476 | 
            -
            - spec/grape/dsl/validations_spec.rb
         | 
| 477 485 | 
             
            - spec/grape/dsl/parameters_spec.rb
         | 
| 486 | 
            +
            - spec/grape/dsl/logger_spec.rb
         | 
| 478 487 | 
             
            - spec/grape/dsl/helpers_spec.rb
         | 
| 479 | 
            -
            - spec/grape/dsl/ | 
| 480 | 
            -
            - spec/grape/dsl/headers_spec.rb
         | 
| 481 | 
            -
            - spec/grape/dsl/callbacks_spec.rb
         | 
| 482 | 
            -
            - spec/grape/dsl/settings_spec.rb
         | 
| 488 | 
            +
            - spec/grape/dsl/request_response_spec.rb
         | 
| 483 489 | 
             
            - spec/grape/dsl/routing_spec.rb
         | 
| 484 | 
            -
            - spec/grape/dsl/ | 
| 485 | 
            -
            - spec/grape/ | 
| 490 | 
            +
            - spec/grape/dsl/headers_spec.rb
         | 
| 491 | 
            +
            - spec/grape/dsl/validations_spec.rb
         | 
| 492 | 
            +
            - spec/grape/dsl/desc_spec.rb
         | 
| 493 | 
            +
            - spec/grape/validations_spec.rb
         | 
| 494 | 
            +
            - spec/grape/named_api_spec.rb
         | 
| 495 | 
            +
            - spec/grape/loading_spec.rb
         | 
| 496 | 
            +
            - spec/grape/request_spec.rb
         | 
| 497 | 
            +
            - spec/integration/multi_xml/xml_spec.rb
         | 
| 498 | 
            +
            - spec/integration/multi_json/json_spec.rb
         | 
| 499 | 
            +
            - spec/spec_helper.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
         |