grape 1.3.0 → 1.5.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 +90 -0
- data/LICENSE +1 -1
- data/README.md +104 -21
- data/UPGRADING.md +243 -39
- data/lib/grape.rb +4 -5
- data/lib/grape/api.rb +4 -4
- data/lib/grape/api/instance.rb +32 -31
- data/lib/grape/content_types.rb +34 -0
- data/lib/grape/dsl/helpers.rb +2 -1
- data/lib/grape/dsl/inside_route.rb +76 -42
- data/lib/grape/dsl/parameters.rb +4 -4
- data/lib/grape/dsl/routing.rb +8 -8
- data/lib/grape/dsl/validations.rb +18 -1
- data/lib/grape/eager_load.rb +1 -1
- data/lib/grape/endpoint.rb +8 -6
- data/lib/grape/exceptions/base.rb +0 -4
- data/lib/grape/exceptions/validation_errors.rb +11 -12
- data/lib/grape/http/headers.rb +26 -0
- data/lib/grape/middleware/base.rb +3 -4
- data/lib/grape/middleware/error.rb +10 -12
- data/lib/grape/middleware/formatter.rb +3 -3
- data/lib/grape/middleware/stack.rb +19 -5
- data/lib/grape/middleware/versioner/header.rb +4 -4
- data/lib/grape/middleware/versioner/parse_media_type_patch.rb +2 -1
- data/lib/grape/middleware/versioner/path.rb +1 -1
- data/lib/grape/namespace.rb +12 -2
- data/lib/grape/path.rb +13 -3
- data/lib/grape/request.rb +13 -8
- data/lib/grape/router.rb +26 -30
- data/lib/grape/router/attribute_translator.rb +25 -4
- data/lib/grape/router/pattern.rb +17 -16
- data/lib/grape/router/route.rb +5 -24
- data/lib/grape/{serve_file → serve_stream}/file_body.rb +1 -1
- data/lib/grape/{serve_file → serve_stream}/sendfile_response.rb +1 -1
- data/lib/grape/{serve_file/file_response.rb → serve_stream/stream_response.rb} +8 -8
- data/lib/grape/util/base_inheritable.rb +15 -8
- data/lib/grape/util/cache.rb +20 -0
- data/lib/grape/util/lazy_object.rb +43 -0
- data/lib/grape/util/lazy_value.rb +1 -0
- data/lib/grape/util/reverse_stackable_values.rb +2 -0
- data/lib/grape/util/stackable_values.rb +7 -20
- data/lib/grape/validations/params_scope.rb +6 -5
- data/lib/grape/validations/types.rb +6 -5
- data/lib/grape/validations/types/array_coercer.rb +14 -5
- data/lib/grape/validations/types/build_coercer.rb +5 -8
- data/lib/grape/validations/types/custom_type_coercer.rb +14 -2
- data/lib/grape/validations/types/dry_type_coercer.rb +36 -1
- data/lib/grape/validations/types/file.rb +15 -12
- data/lib/grape/validations/types/json.rb +40 -36
- data/lib/grape/validations/types/primitive_coercer.rb +15 -6
- data/lib/grape/validations/types/set_coercer.rb +6 -4
- data/lib/grape/validations/types/variant_collection_coercer.rb +1 -1
- data/lib/grape/validations/validators/as.rb +1 -1
- data/lib/grape/validations/validators/base.rb +2 -4
- data/lib/grape/validations/validators/coerce.rb +4 -11
- data/lib/grape/validations/validators/default.rb +3 -5
- data/lib/grape/validations/validators/exactly_one_of.rb +4 -2
- data/lib/grape/validations/validators/except_values.rb +1 -1
- data/lib/grape/validations/validators/regexp.rb +1 -1
- data/lib/grape/validations/validators/values.rb +1 -1
- data/lib/grape/version.rb +1 -1
- data/spec/grape/api/instance_spec.rb +50 -0
- data/spec/grape/api_spec.rb +82 -6
- data/spec/grape/dsl/inside_route_spec.rb +182 -33
- data/spec/grape/endpoint/declared_spec.rb +590 -0
- data/spec/grape/endpoint_spec.rb +0 -521
- data/spec/grape/entity_spec.rb +6 -0
- data/spec/grape/exceptions/validation_errors_spec.rb +2 -2
- data/spec/grape/integration/rack_sendfile_spec.rb +12 -8
- data/spec/grape/middleware/auth/strategies_spec.rb +1 -1
- data/spec/grape/middleware/error_spec.rb +1 -1
- data/spec/grape/middleware/formatter_spec.rb +3 -3
- data/spec/grape/middleware/stack_spec.rb +12 -1
- data/spec/grape/path_spec.rb +4 -4
- data/spec/grape/validations/instance_behaivour_spec.rb +1 -1
- data/spec/grape/validations/params_scope_spec.rb +26 -0
- 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 +1 -1
- data/spec/grape/validations/validators/coerce_spec.rb +329 -77
- data/spec/grape/validations/validators/default_spec.rb +170 -0
- data/spec/grape/validations/validators/exactly_one_of_spec.rb +12 -12
- data/spec/grape/validations/validators/except_values_spec.rb +1 -0
- data/spec/grape/validations/validators/values_spec.rb +1 -1
- data/spec/grape/validations_spec.rb +30 -30
- data/spec/integration/eager_load/eager_load_spec.rb +15 -0
- data/spec/spec_helper.rb +3 -10
- data/spec/support/chunks.rb +14 -0
- data/spec/support/eager_load.rb +19 -0
- data/spec/support/versioned_helpers.rb +3 -5
- metadata +121 -105
- data/lib/grape/util/content_types.rb +0 -28
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
         | 
| 4 | 
            +
            require 'grape'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            describe Grape do
         | 
| 7 | 
            +
              it 'eager_load!' do
         | 
| 8 | 
            +
                require 'grape/eager_load'
         | 
| 9 | 
            +
                expect { Grape.eager_load! }.to_not raise_error
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              it 'compile!' do
         | 
| 13 | 
            +
                expect { Class.new(Grape::API).compile! }.to_not raise_error
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -14,25 +14,18 @@ Dir["#{File.dirname(__FILE__)}/support/*.rb"].each do |file| | |
| 14 14 | 
             
              require file
         | 
| 15 15 | 
             
            end
         | 
| 16 16 |  | 
| 17 | 
            +
            eager_load!
         | 
| 18 | 
            +
             | 
| 17 19 | 
             
            # The default value for this setting is true in a standard Rails app,
         | 
| 18 20 | 
             
            # so it should be set to true here as well to reflect that.
         | 
| 19 21 | 
             
            I18n.enforce_available_locales = true
         | 
| 20 22 |  | 
| 21 | 
            -
            module Chunks
         | 
| 22 | 
            -
              def read_chunks(body)
         | 
| 23 | 
            -
                buffer = []
         | 
| 24 | 
            -
                body.each { |chunk| buffer << chunk }
         | 
| 25 | 
            -
             | 
| 26 | 
            -
                buffer
         | 
| 27 | 
            -
              end
         | 
| 28 | 
            -
            end
         | 
| 29 | 
            -
             | 
| 30 23 | 
             
            RSpec.configure do |config|
         | 
| 31 | 
            -
              config.include Chunks
         | 
| 32 24 | 
             
              config.include Rack::Test::Methods
         | 
| 33 25 | 
             
              config.include Spec::Support::Helpers
         | 
| 34 26 | 
             
              config.raise_errors_for_deprecations!
         | 
| 35 27 | 
             
              config.filter_run_when_matching :focus
         | 
| 28 | 
            +
              config.warnings = true
         | 
| 36 29 |  | 
| 37 30 | 
             
              config.before(:each) { Grape::Util::InheritableSetting.reset_global! }
         | 
| 38 31 |  | 
| @@ -0,0 +1,19 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # Grape uses autoload https://api.rubyonrails.org/classes/ActiveSupport/Autoload.html.
         | 
| 4 | 
            +
            # When a class/module get added to the list, ActiveSupport doesn't check whether it really exists.
         | 
| 5 | 
            +
            # This method loads all classes/modules defined via autoload to be sure only existing
         | 
| 6 | 
            +
            # classes/modules were listed.
         | 
| 7 | 
            +
            def eager_load!(scope = Grape)
         | 
| 8 | 
            +
              # get modules
         | 
| 9 | 
            +
              scope.constants.each do |const_name|
         | 
| 10 | 
            +
                const = scope.const_get(const_name)
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                next unless const.respond_to?(:eager_load!)
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                const.eager_load!
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                # check its modules, they might need to be loaded as well.
         | 
| 17 | 
            +
                eager_load!(const)
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
            end
         | 
| @@ -6,7 +6,7 @@ module Spec | |
| 6 6 | 
             
                module Helpers
         | 
| 7 7 | 
             
                  # Returns the path with options[:version] prefixed if options[:using] is :path.
         | 
| 8 8 | 
             
                  # Returns normal path otherwise.
         | 
| 9 | 
            -
                  def versioned_path(options | 
| 9 | 
            +
                  def versioned_path(**options)
         | 
| 10 10 | 
             
                    case options[:using]
         | 
| 11 11 | 
             
                    when :path
         | 
| 12 12 | 
             
                      File.join('/', options[:prefix] || '', options[:version], options[:path])
         | 
| @@ -43,13 +43,11 @@ module Spec | |
| 43 43 | 
             
                    end
         | 
| 44 44 | 
             
                  end
         | 
| 45 45 |  | 
| 46 | 
            -
                  def versioned_get(path, version_name, version_options | 
| 46 | 
            +
                  def versioned_get(path, version_name, **version_options)
         | 
| 47 47 | 
             
                    path    = versioned_path(version_options.merge(version: version_name, path: path))
         | 
| 48 48 | 
             
                    headers = versioned_headers(**version_options.merge(version: version_name))
         | 
| 49 49 | 
             
                    params = {}
         | 
| 50 | 
            -
                    if version_options[:using] == :param
         | 
| 51 | 
            -
                      params = { version_options[:parameter] => version_name }
         | 
| 52 | 
            -
                    end
         | 
| 50 | 
            +
                    params = { version_options[:parameter] => version_name } if version_options[:using] == :param
         | 
| 53 51 | 
             
                    get path, params, headers
         | 
| 54 52 | 
             
                  end
         | 
| 55 53 | 
             
                end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: grape
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.5.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Michael Bleigh
         | 
| 8 | 
            -
            autorequire: | 
| 8 | 
            +
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020- | 
| 11 | 
            +
            date: 2020-10-05 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         | 
| @@ -113,6 +113,7 @@ files: | |
| 113 113 | 
             
            - lib/grape/api/helpers.rb
         | 
| 114 114 | 
             
            - lib/grape/api/instance.rb
         | 
| 115 115 | 
             
            - lib/grape/config.rb
         | 
| 116 | 
            +
            - lib/grape/content_types.rb
         | 
| 116 117 | 
             
            - lib/grape/cookies.rb
         | 
| 117 118 | 
             
            - lib/grape/dsl/api.rb
         | 
| 118 119 | 
             
            - lib/grape/dsl/callbacks.rb
         | 
| @@ -196,17 +197,18 @@ files: | |
| 196 197 | 
             
            - lib/grape/router/attribute_translator.rb
         | 
| 197 198 | 
             
            - lib/grape/router/pattern.rb
         | 
| 198 199 | 
             
            - lib/grape/router/route.rb
         | 
| 199 | 
            -
            - lib/grape/ | 
| 200 | 
            -
            - lib/grape/ | 
| 201 | 
            -
            - 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
         | 
| 202 203 | 
             
            - lib/grape/util/base_inheritable.rb
         | 
| 203 | 
            -
            - lib/grape/util/ | 
| 204 | 
            +
            - lib/grape/util/cache.rb
         | 
| 204 205 | 
             
            - lib/grape/util/endpoint_configuration.rb
         | 
| 205 206 | 
             
            - lib/grape/util/env.rb
         | 
| 206 207 | 
             
            - lib/grape/util/inheritable_setting.rb
         | 
| 207 208 | 
             
            - lib/grape/util/inheritable_values.rb
         | 
| 208 209 | 
             
            - lib/grape/util/json.rb
         | 
| 209 210 | 
             
            - lib/grape/util/lazy_block.rb
         | 
| 211 | 
            +
            - lib/grape/util/lazy_object.rb
         | 
| 210 212 | 
             
            - lib/grape/util/lazy_value.rb
         | 
| 211 213 | 
             
            - lib/grape/util/registrable.rb
         | 
| 212 214 | 
             
            - lib/grape/util/reverse_stackable_values.rb
         | 
| @@ -280,6 +282,7 @@ files: | |
| 280 282 | 
             
            - spec/grape/dsl/routing_spec.rb
         | 
| 281 283 | 
             
            - spec/grape/dsl/settings_spec.rb
         | 
| 282 284 | 
             
            - spec/grape/dsl/validations_spec.rb
         | 
| 285 | 
            +
            - spec/grape/endpoint/declared_spec.rb
         | 
| 283 286 | 
             
            - spec/grape/endpoint_spec.rb
         | 
| 284 287 | 
             
            - spec/grape/entity_spec.rb
         | 
| 285 288 | 
             
            - spec/grape/exceptions/base_spec.rb
         | 
| @@ -330,6 +333,9 @@ files: | |
| 330 333 | 
             
            - spec/grape/validations/multiple_attributes_iterator_spec.rb
         | 
| 331 334 | 
             
            - spec/grape/validations/params_scope_spec.rb
         | 
| 332 335 | 
             
            - spec/grape/validations/single_attribute_iterator_spec.rb
         | 
| 336 | 
            +
            - spec/grape/validations/types/array_coercer_spec.rb
         | 
| 337 | 
            +
            - spec/grape/validations/types/primitive_coercer_spec.rb
         | 
| 338 | 
            +
            - spec/grape/validations/types/set_coercer_spec.rb
         | 
| 333 339 | 
             
            - spec/grape/validations/types_spec.rb
         | 
| 334 340 | 
             
            - spec/grape/validations/validators/all_or_none_spec.rb
         | 
| 335 341 | 
             
            - spec/grape/validations/validators/allow_blank_spec.rb
         | 
| @@ -345,12 +351,15 @@ files: | |
| 345 351 | 
             
            - spec/grape/validations/validators/values_spec.rb
         | 
| 346 352 | 
             
            - spec/grape/validations/validators/zh-CN.yml
         | 
| 347 353 | 
             
            - spec/grape/validations_spec.rb
         | 
| 354 | 
            +
            - spec/integration/eager_load/eager_load_spec.rb
         | 
| 348 355 | 
             
            - spec/integration/multi_json/json_spec.rb
         | 
| 349 356 | 
             
            - spec/integration/multi_xml/xml_spec.rb
         | 
| 350 357 | 
             
            - spec/shared/versioning_examples.rb
         | 
| 351 358 | 
             
            - spec/spec_helper.rb
         | 
| 352 359 | 
             
            - spec/support/basic_auth_encode_helpers.rb
         | 
| 360 | 
            +
            - spec/support/chunks.rb
         | 
| 353 361 | 
             
            - spec/support/content_type_helpers.rb
         | 
| 362 | 
            +
            - spec/support/eager_load.rb
         | 
| 354 363 | 
             
            - spec/support/endpoint_faker.rb
         | 
| 355 364 | 
             
            - spec/support/file_streamer.rb
         | 
| 356 365 | 
             
            - spec/support/integer_helpers.rb
         | 
| @@ -360,10 +369,10 @@ licenses: | |
| 360 369 | 
             
            - MIT
         | 
| 361 370 | 
             
            metadata:
         | 
| 362 371 | 
             
              bug_tracker_uri: https://github.com/ruby-grape/grape/issues
         | 
| 363 | 
            -
              changelog_uri: https://github.com/ruby-grape/grape/blob/v1. | 
| 364 | 
            -
              documentation_uri: https://www.rubydoc.info/gems/grape/1. | 
| 365 | 
            -
              source_code_uri: https://github.com/ruby-grape/grape/tree/v1. | 
| 366 | 
            -
            post_install_message: | 
| 372 | 
            +
              changelog_uri: https://github.com/ruby-grape/grape/blob/v1.5.0/CHANGELOG.md
         | 
| 373 | 
            +
              documentation_uri: https://www.rubydoc.info/gems/grape/1.5.0
         | 
| 374 | 
            +
              source_code_uri: https://github.com/ruby-grape/grape/tree/v1.5.0
         | 
| 375 | 
            +
            post_install_message:
         | 
| 367 376 | 
             
            rdoc_options: []
         | 
| 368 377 | 
             
            require_paths:
         | 
| 369 378 | 
             
            - lib
         | 
| @@ -378,116 +387,123 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 378 387 | 
             
                - !ruby/object:Gem::Version
         | 
| 379 388 | 
             
                  version: '0'
         | 
| 380 389 | 
             
            requirements: []
         | 
| 381 | 
            -
            rubygems_version: 3. | 
| 382 | 
            -
            signing_key: | 
| 390 | 
            +
            rubygems_version: 3.1.3
         | 
| 391 | 
            +
            signing_key:
         | 
| 383 392 | 
             
            specification_version: 4
         | 
| 384 393 | 
             
            summary: A simple Ruby framework for building REST-like APIs.
         | 
| 385 394 | 
             
            test_files:
         | 
| 395 | 
            +
            - spec/spec_helper.rb
         | 
| 396 | 
            +
            - spec/integration/eager_load/eager_load_spec.rb
         | 
| 397 | 
            +
            - spec/integration/multi_xml/xml_spec.rb
         | 
| 398 | 
            +
            - spec/integration/multi_json/json_spec.rb
         | 
| 386 399 | 
             
            - spec/shared/versioning_examples.rb
         | 
| 387 | 
            -
            - spec/support/versioned_helpers.rb
         | 
| 388 | 
            -
            - spec/support/content_type_helpers.rb
         | 
| 389 400 | 
             
            - spec/support/basic_auth_encode_helpers.rb
         | 
| 390 | 
            -
            - spec/support/file_streamer.rb
         | 
| 391 401 | 
             
            - spec/support/endpoint_faker.rb
         | 
| 402 | 
            +
            - spec/support/chunks.rb
         | 
| 403 | 
            +
            - spec/support/file_streamer.rb
         | 
| 404 | 
            +
            - spec/support/versioned_helpers.rb
         | 
| 405 | 
            +
            - spec/support/content_type_helpers.rb
         | 
| 406 | 
            +
            - spec/support/eager_load.rb
         | 
| 392 407 | 
             
            - spec/support/integer_helpers.rb
         | 
| 393 | 
            -
            - spec/grape/ | 
| 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/api/instance_spec.rb
         | 
| 408 | 
            -
            - spec/grape/api/patch_method_helpers_spec.rb
         | 
| 409 | 
            -
            - spec/grape/api/recognize_path_spec.rb
         | 
| 410 | 
            -
            - spec/grape/api_remount_spec.rb
         | 
| 411 | 
            -
            - spec/grape/validations/types_spec.rb
         | 
| 412 | 
            -
            - spec/grape/validations/attributes_iterator_spec.rb
         | 
| 413 | 
            -
            - spec/grape/validations/validators/regexp_spec.rb
         | 
| 414 | 
            -
            - spec/grape/validations/validators/default_spec.rb
         | 
| 415 | 
            -
            - spec/grape/validations/validators/values_spec.rb
         | 
| 416 | 
            -
            - spec/grape/validations/validators/same_as_spec.rb
         | 
| 417 | 
            -
            - spec/grape/validations/validators/mutual_exclusion_spec.rb
         | 
| 418 | 
            -
            - spec/grape/validations/validators/except_values_spec.rb
         | 
| 419 | 
            -
            - spec/grape/validations/validators/exactly_one_of_spec.rb
         | 
| 420 | 
            -
            - spec/grape/validations/validators/allow_blank_spec.rb
         | 
| 421 | 
            -
            - spec/grape/validations/validators/coerce_spec.rb
         | 
| 422 | 
            -
            - spec/grape/validations/validators/presence_spec.rb
         | 
| 423 | 
            -
            - spec/grape/validations/validators/at_least_one_of_spec.rb
         | 
| 424 | 
            -
            - spec/grape/validations/validators/zh-CN.yml
         | 
| 425 | 
            -
            - spec/grape/validations/validators/all_or_none_spec.rb
         | 
| 426 | 
            -
            - spec/grape/validations/params_scope_spec.rb
         | 
| 427 | 
            -
            - spec/grape/validations/multiple_attributes_iterator_spec.rb
         | 
| 428 | 
            -
            - spec/grape/validations/instance_behaivour_spec.rb
         | 
| 429 | 
            -
            - spec/grape/validations/single_attribute_iterator_spec.rb
         | 
| 408 | 
            +
            - spec/grape/middleware/error_spec.rb
         | 
| 409 | 
            +
            - spec/grape/middleware/globals_spec.rb
         | 
| 410 | 
            +
            - spec/grape/middleware/formatter_spec.rb
         | 
| 411 | 
            +
            - spec/grape/middleware/auth/strategies_spec.rb
         | 
| 412 | 
            +
            - spec/grape/middleware/auth/dsl_spec.rb
         | 
| 413 | 
            +
            - spec/grape/middleware/auth/base_spec.rb
         | 
| 414 | 
            +
            - spec/grape/middleware/stack_spec.rb
         | 
| 415 | 
            +
            - spec/grape/middleware/exception_spec.rb
         | 
| 416 | 
            +
            - spec/grape/middleware/versioner_spec.rb
         | 
| 417 | 
            +
            - spec/grape/middleware/versioner/accept_version_header_spec.rb
         | 
| 418 | 
            +
            - spec/grape/middleware/versioner/header_spec.rb
         | 
| 419 | 
            +
            - spec/grape/middleware/versioner/path_spec.rb
         | 
| 420 | 
            +
            - spec/grape/middleware/versioner/param_spec.rb
         | 
| 421 | 
            +
            - spec/grape/middleware/base_spec.rb
         | 
| 430 422 | 
             
            - spec/grape/config_spec.rb
         | 
| 431 | 
            -
            - spec/grape/ | 
| 432 | 
            -
            - spec/grape/ | 
| 433 | 
            -
            - spec/grape/ | 
| 434 | 
            -
            - spec/grape/ | 
| 435 | 
            -
            - spec/grape/exceptions/validation_spec.rb
         | 
| 436 | 
            -
            - spec/grape/exceptions/unknown_validator_spec.rb
         | 
| 437 | 
            -
            - spec/grape/exceptions/validation_errors_spec.rb
         | 
| 438 | 
            -
            - spec/grape/exceptions/invalid_response_spec.rb
         | 
| 439 | 
            -
            - spec/grape/exceptions/unknown_options_spec.rb
         | 
| 440 | 
            -
            - spec/grape/exceptions/invalid_formatter_spec.rb
         | 
| 441 | 
            -
            - spec/grape/exceptions/invalid_versioner_option_spec.rb
         | 
| 442 | 
            -
            - spec/grape/exceptions/missing_mime_type_spec.rb
         | 
| 443 | 
            -
            - spec/grape/exceptions/base_spec.rb
         | 
| 444 | 
            -
            - spec/grape/path_spec.rb
         | 
| 423 | 
            +
            - spec/grape/loading_spec.rb
         | 
| 424 | 
            +
            - spec/grape/endpoint_spec.rb
         | 
| 425 | 
            +
            - spec/grape/api_spec.rb
         | 
| 426 | 
            +
            - spec/grape/util/reverse_stackable_values_spec.rb
         | 
| 445 427 | 
             
            - spec/grape/util/stackable_values_spec.rb
         | 
| 446 | 
            -
            - spec/grape/util/strict_hash_configuration_spec.rb
         | 
| 447 428 | 
             
            - spec/grape/util/inheritable_setting_spec.rb
         | 
| 448 | 
            -
            - spec/grape/util/ | 
| 429 | 
            +
            - spec/grape/util/strict_hash_configuration_spec.rb
         | 
| 449 430 | 
             
            - spec/grape/util/inheritable_values_spec.rb
         | 
| 450 | 
            -
            - spec/grape/extensions/param_builders/hash_with_indifferent_access_spec.rb
         | 
| 451 | 
            -
            - spec/grape/extensions/param_builders/hash_spec.rb
         | 
| 452 | 
            -
            - spec/grape/extensions/param_builders/hashie/mash_spec.rb
         | 
| 453 431 | 
             
            - spec/grape/integration/rack_spec.rb
         | 
| 454 432 | 
             
            - spec/grape/integration/rack_sendfile_spec.rb
         | 
| 455 433 | 
             
            - spec/grape/integration/global_namespace_function_spec.rb
         | 
| 456 | 
            -
            - spec/grape/ | 
| 457 | 
            -
            - spec/grape/endpoint_spec.rb
         | 
| 458 | 
            -
            - spec/grape/api_spec.rb
         | 
| 459 | 
            -
            - spec/grape/middleware/exception_spec.rb
         | 
| 460 | 
            -
            - spec/grape/middleware/versioner/param_spec.rb
         | 
| 461 | 
            -
            - spec/grape/middleware/versioner/header_spec.rb
         | 
| 462 | 
            -
            - spec/grape/middleware/versioner/path_spec.rb
         | 
| 463 | 
            -
            - spec/grape/middleware/versioner/accept_version_header_spec.rb
         | 
| 464 | 
            -
            - spec/grape/middleware/globals_spec.rb
         | 
| 465 | 
            -
            - spec/grape/middleware/stack_spec.rb
         | 
| 466 | 
            -
            - spec/grape/middleware/formatter_spec.rb
         | 
| 467 | 
            -
            - spec/grape/middleware/error_spec.rb
         | 
| 468 | 
            -
            - spec/grape/middleware/auth/dsl_spec.rb
         | 
| 469 | 
            -
            - spec/grape/middleware/auth/strategies_spec.rb
         | 
| 470 | 
            -
            - spec/grape/middleware/auth/base_spec.rb
         | 
| 471 | 
            -
            - spec/grape/middleware/versioner_spec.rb
         | 
| 472 | 
            -
            - spec/grape/middleware/base_spec.rb
         | 
| 434 | 
            +
            - spec/grape/validations_spec.rb
         | 
| 473 435 | 
             
            - spec/grape/entity_spec.rb
         | 
| 474 | 
            -
            - spec/grape/ | 
| 475 | 
            -
            - spec/grape/ | 
| 476 | 
            -
            - spec/grape/ | 
| 477 | 
            -
            - spec/grape/ | 
| 436 | 
            +
            - spec/grape/exceptions/validation_spec.rb
         | 
| 437 | 
            +
            - spec/grape/exceptions/invalid_accept_header_spec.rb
         | 
| 438 | 
            +
            - spec/grape/exceptions/missing_option_spec.rb
         | 
| 439 | 
            +
            - spec/grape/exceptions/invalid_response_spec.rb
         | 
| 440 | 
            +
            - spec/grape/exceptions/body_parse_errors_spec.rb
         | 
| 441 | 
            +
            - spec/grape/exceptions/invalid_formatter_spec.rb
         | 
| 442 | 
            +
            - spec/grape/exceptions/missing_mime_type_spec.rb
         | 
| 443 | 
            +
            - spec/grape/exceptions/unknown_options_spec.rb
         | 
| 444 | 
            +
            - spec/grape/exceptions/validation_errors_spec.rb
         | 
| 445 | 
            +
            - spec/grape/exceptions/unknown_validator_spec.rb
         | 
| 446 | 
            +
            - spec/grape/exceptions/invalid_versioner_option_spec.rb
         | 
| 447 | 
            +
            - spec/grape/exceptions/base_spec.rb
         | 
| 448 | 
            +
            - spec/grape/presenters/presenter_spec.rb
         | 
| 449 | 
            +
            - spec/grape/validations/single_attribute_iterator_spec.rb
         | 
| 450 | 
            +
            - spec/grape/validations/attributes_iterator_spec.rb
         | 
| 451 | 
            +
            - spec/grape/validations/types/primitive_coercer_spec.rb
         | 
| 452 | 
            +
            - spec/grape/validations/types/set_coercer_spec.rb
         | 
| 453 | 
            +
            - spec/grape/validations/types/array_coercer_spec.rb
         | 
| 454 | 
            +
            - spec/grape/validations/params_scope_spec.rb
         | 
| 455 | 
            +
            - spec/grape/validations/instance_behaivour_spec.rb
         | 
| 456 | 
            +
            - spec/grape/validations/multiple_attributes_iterator_spec.rb
         | 
| 457 | 
            +
            - spec/grape/validations/types_spec.rb
         | 
| 458 | 
            +
            - spec/grape/validations/validators/regexp_spec.rb
         | 
| 459 | 
            +
            - spec/grape/validations/validators/mutual_exclusion_spec.rb
         | 
| 460 | 
            +
            - spec/grape/validations/validators/exactly_one_of_spec.rb
         | 
| 461 | 
            +
            - spec/grape/validations/validators/except_values_spec.rb
         | 
| 462 | 
            +
            - spec/grape/validations/validators/presence_spec.rb
         | 
| 463 | 
            +
            - spec/grape/validations/validators/all_or_none_spec.rb
         | 
| 464 | 
            +
            - spec/grape/validations/validators/allow_blank_spec.rb
         | 
| 465 | 
            +
            - spec/grape/validations/validators/same_as_spec.rb
         | 
| 466 | 
            +
            - spec/grape/validations/validators/default_spec.rb
         | 
| 467 | 
            +
            - spec/grape/validations/validators/values_spec.rb
         | 
| 468 | 
            +
            - spec/grape/validations/validators/at_least_one_of_spec.rb
         | 
| 469 | 
            +
            - spec/grape/validations/validators/coerce_spec.rb
         | 
| 470 | 
            +
            - spec/grape/validations/validators/zh-CN.yml
         | 
| 471 | 
            +
            - spec/grape/extensions/param_builders/hashie/mash_spec.rb
         | 
| 472 | 
            +
            - spec/grape/extensions/param_builders/hash_spec.rb
         | 
| 473 | 
            +
            - spec/grape/extensions/param_builders/hash_with_indifferent_access_spec.rb
         | 
| 474 | 
            +
            - spec/grape/parser_spec.rb
         | 
| 475 | 
            +
            - spec/grape/request_spec.rb
         | 
| 476 | 
            +
            - spec/grape/endpoint/declared_spec.rb
         | 
| 477 | 
            +
            - spec/grape/api/parameters_modification_spec.rb
         | 
| 478 | 
            +
            - spec/grape/api/patch_method_helpers_spec.rb
         | 
| 479 | 
            +
            - spec/grape/api/required_parameters_with_invalid_method_spec.rb
         | 
| 480 | 
            +
            - spec/grape/api/nested_helpers_spec.rb
         | 
| 481 | 
            +
            - spec/grape/api/defines_boolean_in_params_spec.rb
         | 
| 482 | 
            +
            - spec/grape/api/invalid_format_spec.rb
         | 
| 483 | 
            +
            - spec/grape/api/required_parameters_in_route_spec.rb
         | 
| 484 | 
            +
            - spec/grape/api/instance_spec.rb
         | 
| 485 | 
            +
            - spec/grape/api/namespace_parameters_in_route_spec.rb
         | 
| 486 | 
            +
            - spec/grape/api/recognize_path_spec.rb
         | 
| 487 | 
            +
            - spec/grape/api/shared_helpers_exactly_one_of_spec.rb
         | 
| 488 | 
            +
            - spec/grape/api/inherited_helpers_spec.rb
         | 
| 489 | 
            +
            - spec/grape/api/shared_helpers_spec.rb
         | 
| 490 | 
            +
            - spec/grape/api/deeply_included_options_spec.rb
         | 
| 491 | 
            +
            - spec/grape/api/routes_with_requirements_spec.rb
         | 
| 492 | 
            +
            - spec/grape/api/custom_validations_spec.rb
         | 
| 493 | 
            +
            - spec/grape/api/optional_parameters_in_route_spec.rb
         | 
| 494 | 
            +
            - spec/grape/api_remount_spec.rb
         | 
| 495 | 
            +
            - spec/grape/named_api_spec.rb
         | 
| 496 | 
            +
            - spec/grape/dsl/request_response_spec.rb
         | 
| 497 | 
            +
            - spec/grape/dsl/desc_spec.rb
         | 
| 498 | 
            +
            - spec/grape/dsl/logger_spec.rb
         | 
| 478 499 | 
             
            - spec/grape/dsl/configuration_spec.rb
         | 
| 500 | 
            +
            - spec/grape/dsl/validations_spec.rb
         | 
| 479 501 | 
             
            - spec/grape/dsl/parameters_spec.rb
         | 
| 480 | 
            -
            - spec/grape/dsl/logger_spec.rb
         | 
| 481 502 | 
             
            - spec/grape/dsl/helpers_spec.rb
         | 
| 482 | 
            -
            - spec/grape/dsl/ | 
| 483 | 
            -
            - spec/grape/dsl/routing_spec.rb
         | 
| 503 | 
            +
            - spec/grape/dsl/middleware_spec.rb
         | 
| 484 504 | 
             
            - spec/grape/dsl/headers_spec.rb
         | 
| 485 | 
            -
            - spec/grape/dsl/ | 
| 486 | 
            -
            - spec/grape/dsl/ | 
| 487 | 
            -
            - spec/grape/ | 
| 488 | 
            -
            - spec/grape/ | 
| 489 | 
            -
            - spec/grape/ | 
| 490 | 
            -
            - spec/grape/request_spec.rb
         | 
| 491 | 
            -
            - spec/integration/multi_xml/xml_spec.rb
         | 
| 492 | 
            -
            - spec/integration/multi_json/json_spec.rb
         | 
| 493 | 
            -
            - spec/spec_helper.rb
         | 
| 505 | 
            +
            - spec/grape/dsl/callbacks_spec.rb
         | 
| 506 | 
            +
            - spec/grape/dsl/settings_spec.rb
         | 
| 507 | 
            +
            - spec/grape/dsl/routing_spec.rb
         | 
| 508 | 
            +
            - spec/grape/dsl/inside_route_spec.rb
         | 
| 509 | 
            +
            - spec/grape/path_spec.rb
         | 
| @@ -1,28 +0,0 @@ | |
| 1 | 
            -
            # frozen_string_literal: true
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            module Grape
         | 
| 4 | 
            -
              module ContentTypes
         | 
| 5 | 
            -
                # Content types are listed in order of preference.
         | 
| 6 | 
            -
                CONTENT_TYPES = { # rubocop:disable Style/MutableConstant
         | 
| 7 | 
            -
                  xml: 'application/xml',
         | 
| 8 | 
            -
                  serializable_hash: 'application/json',
         | 
| 9 | 
            -
                  json: 'application/json',
         | 
| 10 | 
            -
                  binary: 'application/octet-stream',
         | 
| 11 | 
            -
                  txt: 'text/plain'
         | 
| 12 | 
            -
                }
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                def self.content_types_for_settings(settings)
         | 
| 15 | 
            -
                  return if settings.blank?
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                  settings.each_with_object({}) { |value, result| result.merge!(value) }
         | 
| 18 | 
            -
                end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
                def self.content_types_for(from_settings)
         | 
| 21 | 
            -
                  if from_settings.present?
         | 
| 22 | 
            -
                    from_settings
         | 
| 23 | 
            -
                  else
         | 
| 24 | 
            -
                    Grape::ContentTypes::CONTENT_TYPES
         | 
| 25 | 
            -
                  end
         | 
| 26 | 
            -
                end
         | 
| 27 | 
            -
              end
         | 
| 28 | 
            -
            end
         |