actionpack 6.0.0 → 6.0.1.rc1
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.
Potentially problematic release.
This version of actionpack might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/lib/action_controller.rb +4 -1
- data/lib/action_controller/metal/exceptions.rb +1 -1
- data/lib/action_controller/metal/params_wrapper.rb +1 -1
- data/lib/action_controller/test_case.rb +3 -2
- data/lib/action_dispatch/http/response.rb +9 -3
- data/lib/action_dispatch/middleware/remote_ip.rb +3 -3
- data/lib/action_dispatch/railtie.rb +5 -3
- data/lib/action_dispatch/routing/mapper.rb +1 -1
- data/lib/action_dispatch/system_test_case.rb +20 -3
- data/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb +0 -1
- data/lib/action_pack/gem_version.rb +2 -2
- metadata +16 -14
- data/lib/action_dispatch/system_testing/test_helpers/undef_methods.rb +0 -26
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 712053e56e990a145430653396c17ec95d5e838da7243b209cb340426c00e949
         | 
| 4 | 
            +
              data.tar.gz: f6fc9d43ab2813011edd135cdb4d21dae7499fe66cef41e146c17c941d93edbe
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 1a5e6e7326f7d15187bcfcaebe72e02182ee7ee8454a5b2aac54adc9a8017dd80eebd4152d74f7ee6c5c0861f8ce87a1254f342bdea6b2760a66aab50ffdc639
         | 
| 7 | 
            +
              data.tar.gz: 8b907a4c8c860951d3a7b04a3c353e05601c8d996f3d7448aaec30ba82c83c48595a752381eef44a1ed559c975835eb9557fe97c0c8e89f942d897afa3062680
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,20 @@ | |
| 1 | 
            +
            ## Rails 6.0.1.rc1 (October 31, 2019) ##
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            *   `ActionDispatch::SystemTestCase` now inherits from `ActiveSupport::TestCase`
         | 
| 4 | 
            +
                rather than `ActionDispatch::IntegrationTest`. This permits running jobs in
         | 
| 5 | 
            +
                system tests.
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                *George Claghorn*, *Edouard Chin*
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            *   Registered MIME types may contain extra flags:
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                ```ruby
         | 
| 12 | 
            +
                Mime::Type.register "text/html; fragment", :html_fragment
         | 
| 13 | 
            +
                ```
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                *Aaron Patterson*
         | 
| 16 | 
            +
             | 
| 17 | 
            +
             | 
| 1 18 | 
             
            ## Rails 6.0.0 (August 16, 2019) ##
         | 
| 2 19 |  | 
| 3 20 | 
             
            *   No changes.
         | 
    
        data/lib/action_controller.rb
    CHANGED
    
    | @@ -3,7 +3,6 @@ | |
| 3 3 | 
             
            require "active_support/rails"
         | 
| 4 4 | 
             
            require "abstract_controller"
         | 
| 5 5 | 
             
            require "action_dispatch"
         | 
| 6 | 
            -
            require "action_controller/metal/live"
         | 
| 7 6 | 
             
            require "action_controller/metal/strong_parameters"
         | 
| 8 7 |  | 
| 9 8 | 
             
            module ActionController
         | 
| @@ -21,6 +20,10 @@ module ActionController | |
| 21 20 | 
             
              end
         | 
| 22 21 |  | 
| 23 22 | 
             
              autoload_under "metal" do
         | 
| 23 | 
            +
                eager_autoload do
         | 
| 24 | 
            +
                  autoload :Live
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
             | 
| 24 27 | 
             
                autoload :ConditionalGet
         | 
| 25 28 | 
             
                autoload :ContentSecurityPolicy
         | 
| 26 29 | 
             
                autoload :Cookies
         | 
| @@ -27,7 +27,7 @@ module ActionController | |
| 27 27 |  | 
| 28 28 | 
             
              class MethodNotAllowed < ActionControllerError #:nodoc:
         | 
| 29 29 | 
             
                def initialize(*allowed_methods)
         | 
| 30 | 
            -
                  super("Only #{allowed_methods.to_sentence | 
| 30 | 
            +
                  super("Only #{allowed_methods.to_sentence} requests are allowed.")
         | 
| 31 31 | 
             
                end
         | 
| 32 32 | 
             
              end
         | 
| 33 33 |  | 
| @@ -115,7 +115,7 @@ module ActionController | |
| 115 115 |  | 
| 116 116 | 
             
                          if m.respond_to?(:nested_attributes_options) && m.nested_attributes_options.keys.any?
         | 
| 117 117 | 
             
                            self.include += m.nested_attributes_options.keys.map do |key|
         | 
| 118 | 
            -
                              key.to_s.concat("_attributes")
         | 
| 118 | 
            +
                              (+key.to_s).concat("_attributes")
         | 
| 119 119 | 
             
                            end
         | 
| 120 120 | 
             
                          end
         | 
| 121 121 |  | 
| @@ -457,6 +457,7 @@ module ActionController | |
| 457 457 | 
             
                  def process(action, method: "GET", params: nil, session: nil, body: nil, flash: {}, format: nil, xhr: false, as: nil)
         | 
| 458 458 | 
             
                    check_required_ivars
         | 
| 459 459 |  | 
| 460 | 
            +
                    action = +action.to_s
         | 
| 460 461 | 
             
                    http_method = method.to_s.upcase
         | 
| 461 462 |  | 
| 462 463 | 
             
                    @html_document = nil
         | 
| @@ -488,11 +489,11 @@ module ActionController | |
| 488 489 | 
             
                      parameters[:format] = format
         | 
| 489 490 | 
             
                    end
         | 
| 490 491 |  | 
| 491 | 
            -
                    generated_extras = @routes.generate_extras(parameters.merge(controller: controller_class_name, action: action | 
| 492 | 
            +
                    generated_extras = @routes.generate_extras(parameters.merge(controller: controller_class_name, action: action))
         | 
| 492 493 | 
             
                    generated_path = generated_path(generated_extras)
         | 
| 493 494 | 
             
                    query_string_keys = query_parameter_names(generated_extras)
         | 
| 494 495 |  | 
| 495 | 
            -
                    @request.assign_parameters(@routes, controller_class_name, action | 
| 496 | 
            +
                    @request.assign_parameters(@routes, controller_class_name, action, parameters, generated_path, query_string_keys)
         | 
| 496 497 |  | 
| 497 498 | 
             
                    @request.session.update(session) if session
         | 
| 498 499 | 
             
                    @request.flash.update(flash || {})
         | 
| @@ -82,7 +82,6 @@ module ActionDispatch # :nodoc: | |
| 82 82 | 
             
                SET_COOKIE   = "Set-Cookie"
         | 
| 83 83 | 
             
                LOCATION     = "Location"
         | 
| 84 84 | 
             
                NO_CONTENT_CODES = [100, 101, 102, 204, 205, 304]
         | 
| 85 | 
            -
                CONTENT_TYPE_PARSER = /\A(?<type>[^;\s]+)?(?:.*;\s*charset=(?<quote>"?)(?<charset>[^;\s]+)\k<quote>)?/ # :nodoc:
         | 
| 86 85 |  | 
| 87 86 | 
             
                cattr_accessor :default_charset, default: "utf-8"
         | 
| 88 87 | 
             
                cattr_accessor :default_headers
         | 
| @@ -420,13 +419,18 @@ module ActionDispatch # :nodoc: | |
| 420 419 | 
             
                end
         | 
| 421 420 |  | 
| 422 421 | 
             
              private
         | 
| 423 | 
            -
             | 
| 424 422 | 
             
                ContentTypeHeader = Struct.new :mime_type, :charset
         | 
| 425 423 | 
             
                NullContentTypeHeader = ContentTypeHeader.new nil, nil
         | 
| 426 424 |  | 
| 425 | 
            +
                CONTENT_TYPE_PARSER = /
         | 
| 426 | 
            +
                  \A
         | 
| 427 | 
            +
                  (?<mime_type>[^;\s]+\s*(?:;\s*(?:(?!charset)[^;\s])+)*)?
         | 
| 428 | 
            +
                  (?:;\s*charset=(?<quote>"?)(?<charset>[^;\s]+)\k<quote>)?
         | 
| 429 | 
            +
                /x # :nodoc:
         | 
| 430 | 
            +
             | 
| 427 431 | 
             
                def parse_content_type(content_type)
         | 
| 428 432 | 
             
                  if content_type && match = CONTENT_TYPE_PARSER.match(content_type)
         | 
| 429 | 
            -
                    ContentTypeHeader.new(match[: | 
| 433 | 
            +
                    ContentTypeHeader.new(match[:mime_type], match[:charset])
         | 
| 430 434 | 
             
                  else
         | 
| 431 435 | 
             
                    NullContentTypeHeader
         | 
| 432 436 | 
             
                  end
         | 
| @@ -531,4 +535,6 @@ module ActionDispatch # :nodoc: | |
| 531 535 | 
             
                  end
         | 
| 532 536 | 
             
                end
         | 
| 533 537 | 
             
              end
         | 
| 538 | 
            +
             | 
| 539 | 
            +
              ActiveSupport.run_load_hooks(:action_dispatch_response, Response)
         | 
| 534 540 | 
             
            end
         | 
| @@ -8,13 +8,13 @@ module ActionDispatch | |
| 8 8 | 
             
              # contain the address, and then picking the last-set address that is not
         | 
| 9 9 | 
             
              # on the list of trusted IPs. This follows the precedent set by e.g.
         | 
| 10 10 | 
             
              # {the Tomcat server}[https://issues.apache.org/bugzilla/show_bug.cgi?id=50453],
         | 
| 11 | 
            -
              # with {reasoning explained at length}[ | 
| 11 | 
            +
              # with {reasoning explained at length}[https://blog.gingerlime.com/2012/rails-ip-spoofing-vulnerabilities-and-protection]
         | 
| 12 12 | 
             
              # by @gingerlime. A more detailed explanation of the algorithm is given
         | 
| 13 13 | 
             
              # at GetIp#calculate_ip.
         | 
| 14 14 | 
             
              #
         | 
| 15 15 | 
             
              # Some Rack servers concatenate repeated headers, like {HTTP RFC 2616}[https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2]
         | 
| 16 16 | 
             
              # requires. Some Rack servers simply drop preceding headers, and only report
         | 
| 17 | 
            -
              # the value that was {given in the last header}[ | 
| 17 | 
            +
              # the value that was {given in the last header}[https://andre.arko.net/2011/12/26/repeated-headers-and-ruby-web-servers].
         | 
| 18 18 | 
             
              # If you are behind multiple proxy servers (like NGINX to HAProxy to Unicorn)
         | 
| 19 19 | 
             
              # then you should test your Rack server to make sure your data is good.
         | 
| 20 20 | 
             
              #
         | 
| @@ -102,7 +102,7 @@ module ActionDispatch | |
| 102 102 | 
             
                  # proxies, that header may contain a list of IPs. Other proxy services
         | 
| 103 103 | 
             
                  # set the Client-Ip header instead, so we check that too.
         | 
| 104 104 | 
             
                  #
         | 
| 105 | 
            -
                  # As discussed in {this post about Rails IP Spoofing}[ | 
| 105 | 
            +
                  # As discussed in {this post about Rails IP Spoofing}[https://blog.gingerlime.com/2012/rails-ip-spoofing-vulnerabilities-and-protection/],
         | 
| 106 106 | 
             
                  # while the first IP in the list is likely to be the "originating" IP,
         | 
| 107 107 | 
             
                  # it could also have been set by the client maliciously.
         | 
| 108 108 | 
             
                  #
         | 
| @@ -42,9 +42,11 @@ module ActionDispatch | |
| 42 42 | 
             
                  ActionDispatch::Http::URL.tld_length = app.config.action_dispatch.tld_length
         | 
| 43 43 | 
             
                  ActionDispatch::Request.ignore_accept_header = app.config.action_dispatch.ignore_accept_header
         | 
| 44 44 | 
             
                  ActionDispatch::Request::Utils.perform_deep_munge = app.config.action_dispatch.perform_deep_munge
         | 
| 45 | 
            -
                   | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 45 | 
            +
                  ActiveSupport.on_load(:action_dispatch_response) do
         | 
| 46 | 
            +
                    self.default_charset = app.config.action_dispatch.default_charset || app.config.encoding
         | 
| 47 | 
            +
                    self.default_headers = app.config.action_dispatch.default_headers
         | 
| 48 | 
            +
                    self.return_only_media_type_on_content_type = app.config.action_dispatch.return_only_media_type_on_content_type
         | 
| 49 | 
            +
                  end
         | 
| 48 50 |  | 
| 49 51 | 
             
                  ActionDispatch::ExceptionWrapper.rescue_responses.merge!(config.action_dispatch.rescue_responses)
         | 
| 50 52 | 
             
                  ActionDispatch::ExceptionWrapper.rescue_templates.merge!(config.action_dispatch.rescue_templates)
         | 
| @@ -11,7 +11,6 @@ require "action_dispatch/system_testing/browser" | |
| 11 11 | 
             
            require "action_dispatch/system_testing/server"
         | 
| 12 12 | 
             
            require "action_dispatch/system_testing/test_helpers/screenshot_helper"
         | 
| 13 13 | 
             
            require "action_dispatch/system_testing/test_helpers/setup_and_teardown"
         | 
| 14 | 
            -
            require "action_dispatch/system_testing/test_helpers/undef_methods"
         | 
| 15 14 |  | 
| 16 15 | 
             
            module ActionDispatch
         | 
| 17 16 | 
             
              # = System Testing
         | 
| @@ -111,16 +110,26 @@ module ActionDispatch | |
| 111 110 | 
             
              # Because <tt>ActionDispatch::SystemTestCase</tt> is a shim between Capybara
         | 
| 112 111 | 
             
              # and Rails, any driver that is supported by Capybara is supported by system
         | 
| 113 112 | 
             
              # tests as long as you include the required gems and files.
         | 
| 114 | 
            -
              class SystemTestCase <  | 
| 113 | 
            +
              class SystemTestCase < ActiveSupport::TestCase
         | 
| 115 114 | 
             
                include Capybara::DSL
         | 
| 116 115 | 
             
                include Capybara::Minitest::Assertions
         | 
| 117 116 | 
             
                include SystemTesting::TestHelpers::SetupAndTeardown
         | 
| 118 117 | 
             
                include SystemTesting::TestHelpers::ScreenshotHelper
         | 
| 119 | 
            -
                include SystemTesting::TestHelpers::UndefMethods
         | 
| 120 118 |  | 
| 121 119 | 
             
                def initialize(*) # :nodoc:
         | 
| 122 120 | 
             
                  super
         | 
| 123 121 | 
             
                  self.class.driver.use
         | 
| 122 | 
            +
                  @proxy_route = if ActionDispatch.test_app
         | 
| 123 | 
            +
                    Class.new do
         | 
| 124 | 
            +
                      include ActionDispatch.test_app.routes.url_helpers
         | 
| 125 | 
            +
             | 
| 126 | 
            +
                      def url_options
         | 
| 127 | 
            +
                        default_url_options.merge(host: Capybara.app_host)
         | 
| 128 | 
            +
                      end
         | 
| 129 | 
            +
                    end.new
         | 
| 130 | 
            +
                  else
         | 
| 131 | 
            +
                    nil
         | 
| 132 | 
            +
                  end
         | 
| 124 133 | 
             
                end
         | 
| 125 134 |  | 
| 126 135 | 
             
                def self.start_application # :nodoc:
         | 
| @@ -161,6 +170,14 @@ module ActionDispatch | |
| 161 170 |  | 
| 162 171 | 
             
                driven_by :selenium
         | 
| 163 172 |  | 
| 173 | 
            +
                def method_missing(method, *args, &block)
         | 
| 174 | 
            +
                  if @proxy_route.respond_to?(method)
         | 
| 175 | 
            +
                    @proxy_route.send(method, *args, &block)
         | 
| 176 | 
            +
                  else
         | 
| 177 | 
            +
                    super
         | 
| 178 | 
            +
                  end
         | 
| 179 | 
            +
                end
         | 
| 180 | 
            +
             | 
| 164 181 | 
             
                ActiveSupport.run_load_hooks(:action_dispatch_system_test_case, self)
         | 
| 165 182 | 
             
              end
         | 
| 166 183 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: actionpack
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 6.0. | 
| 4 | 
            +
              version: 6.0.1.rc1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - David Heinemeier Hansson
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019- | 
| 11 | 
            +
            date: 2019-10-31 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         | 
| @@ -16,14 +16,14 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - '='
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: 6.0. | 
| 19 | 
            +
                    version: 6.0.1.rc1
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 24 | 
             
                - - '='
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: 6.0. | 
| 26 | 
            +
                    version: 6.0.1.rc1
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: rack
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -92,28 +92,28 @@ dependencies: | |
| 92 92 | 
             
                requirements:
         | 
| 93 93 | 
             
                - - '='
         | 
| 94 94 | 
             
                  - !ruby/object:Gem::Version
         | 
| 95 | 
            -
                    version: 6.0. | 
| 95 | 
            +
                    version: 6.0.1.rc1
         | 
| 96 96 | 
             
              type: :runtime
         | 
| 97 97 | 
             
              prerelease: false
         | 
| 98 98 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 99 99 | 
             
                requirements:
         | 
| 100 100 | 
             
                - - '='
         | 
| 101 101 | 
             
                  - !ruby/object:Gem::Version
         | 
| 102 | 
            -
                    version: 6.0. | 
| 102 | 
            +
                    version: 6.0.1.rc1
         | 
| 103 103 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 104 104 | 
             
              name: activemodel
         | 
| 105 105 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 106 106 | 
             
                requirements:
         | 
| 107 107 | 
             
                - - '='
         | 
| 108 108 | 
             
                  - !ruby/object:Gem::Version
         | 
| 109 | 
            -
                    version: 6.0. | 
| 109 | 
            +
                    version: 6.0.1.rc1
         | 
| 110 110 | 
             
              type: :development
         | 
| 111 111 | 
             
              prerelease: false
         | 
| 112 112 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 113 113 | 
             
                requirements:
         | 
| 114 114 | 
             
                - - '='
         | 
| 115 115 | 
             
                  - !ruby/object:Gem::Version
         | 
| 116 | 
            -
                    version: 6.0. | 
| 116 | 
            +
                    version: 6.0.1.rc1
         | 
| 117 117 | 
             
            description: Web apps on Rails. Simple, battle-tested conventions for building and
         | 
| 118 118 | 
             
              testing MVC web applications. Works with any Rack-compatible server.
         | 
| 119 119 | 
             
            email: david@loudthinking.com
         | 
| @@ -287,7 +287,6 @@ files: | |
| 287 287 | 
             
            - lib/action_dispatch/system_testing/server.rb
         | 
| 288 288 | 
             
            - lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb
         | 
| 289 289 | 
             
            - lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb
         | 
| 290 | 
            -
            - lib/action_dispatch/system_testing/test_helpers/undef_methods.rb
         | 
| 291 290 | 
             
            - lib/action_dispatch/testing/assertion_response.rb
         | 
| 292 291 | 
             
            - lib/action_dispatch/testing/assertions.rb
         | 
| 293 292 | 
             
            - lib/action_dispatch/testing/assertions/response.rb
         | 
| @@ -304,8 +303,11 @@ homepage: https://rubyonrails.org | |
| 304 303 | 
             
            licenses:
         | 
| 305 304 | 
             
            - MIT
         | 
| 306 305 | 
             
            metadata:
         | 
| 307 | 
            -
               | 
| 308 | 
            -
              changelog_uri: https://github.com/rails/rails/blob/v6.0. | 
| 306 | 
            +
              bug_tracker_uri: https://github.com/rails/rails/issues
         | 
| 307 | 
            +
              changelog_uri: https://github.com/rails/rails/blob/v6.0.1.rc1/actionpack/CHANGELOG.md
         | 
| 308 | 
            +
              documentation_uri: https://api.rubyonrails.org/v6.0.1.rc1/
         | 
| 309 | 
            +
              mailing_list_uri: https://groups.google.com/forum/#!forum/rubyonrails-talk
         | 
| 310 | 
            +
              source_code_uri: https://github.com/rails/rails/tree/v6.0.1.rc1/actionpack
         | 
| 309 311 | 
             
            post_install_message: 
         | 
| 310 312 | 
             
            rdoc_options: []
         | 
| 311 313 | 
             
            require_paths:
         | 
| @@ -317,12 +319,12 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 317 319 | 
             
                  version: 2.5.0
         | 
| 318 320 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 319 321 | 
             
              requirements:
         | 
| 320 | 
            -
              - - " | 
| 322 | 
            +
              - - ">"
         | 
| 321 323 | 
             
                - !ruby/object:Gem::Version
         | 
| 322 | 
            -
                  version:  | 
| 324 | 
            +
                  version: 1.3.1
         | 
| 323 325 | 
             
            requirements:
         | 
| 324 326 | 
             
            - none
         | 
| 325 | 
            -
            rubygems_version: 3.0. | 
| 327 | 
            +
            rubygems_version: 3.0.3
         | 
| 326 328 | 
             
            signing_key: 
         | 
| 327 329 | 
             
            specification_version: 4
         | 
| 328 330 | 
             
            summary: Web-flow and rendering framework putting the VC in MVC (part of Rails).
         | 
| @@ -1,26 +0,0 @@ | |
| 1 | 
            -
            # frozen_string_literal: true
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            module ActionDispatch
         | 
| 4 | 
            -
              module SystemTesting
         | 
| 5 | 
            -
                module TestHelpers
         | 
| 6 | 
            -
                  module UndefMethods # :nodoc:
         | 
| 7 | 
            -
                    extend ActiveSupport::Concern
         | 
| 8 | 
            -
                    included do
         | 
| 9 | 
            -
                      METHODS = %i(get post put patch delete).freeze
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                      METHODS.each do |verb|
         | 
| 12 | 
            -
                        undef_method verb
         | 
| 13 | 
            -
                      end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
                      def method_missing(method, *args, &block)
         | 
| 16 | 
            -
                        if METHODS.include?(method)
         | 
| 17 | 
            -
                          raise NoMethodError, "System tests cannot make direct requests via ##{method}; use #visit and #click_on instead. See http://www.rubydoc.info/github/teamcapybara/capybara/master#The_DSL for more information."
         | 
| 18 | 
            -
                        else
         | 
| 19 | 
            -
                          super
         | 
| 20 | 
            -
                        end
         | 
| 21 | 
            -
                      end
         | 
| 22 | 
            -
                    end
         | 
| 23 | 
            -
                  end
         | 
| 24 | 
            -
                end
         | 
| 25 | 
            -
              end
         | 
| 26 | 
            -
            end
         |