actionpack 4.2.11.1 → 5.2.4
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of actionpack might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +279 -497
- data/MIT-LICENSE +1 -1
- data/README.rdoc +6 -7
- data/lib/abstract_controller/asset_paths.rb +2 -0
- data/lib/abstract_controller/base.rb +45 -49
- data/lib/{action_controller → abstract_controller}/caching/fragments.rb +78 -15
- data/lib/abstract_controller/caching.rb +66 -0
- data/lib/abstract_controller/callbacks.rb +47 -31
- data/lib/abstract_controller/collector.rb +8 -11
- data/lib/abstract_controller/error.rb +6 -0
- data/lib/abstract_controller/helpers.rb +25 -25
- data/lib/abstract_controller/logger.rb +2 -0
- data/lib/abstract_controller/railties/routes_helpers.rb +4 -2
- data/lib/abstract_controller/rendering.rb +42 -41
- data/lib/abstract_controller/translation.rb +10 -7
- data/lib/abstract_controller/url_for.rb +2 -0
- data/lib/abstract_controller.rb +12 -5
- data/lib/action_controller/api/api_rendering.rb +16 -0
- data/lib/action_controller/api.rb +149 -0
- data/lib/action_controller/base.rb +27 -19
- data/lib/action_controller/caching.rb +14 -57
- data/lib/action_controller/form_builder.rb +50 -0
- data/lib/action_controller/log_subscriber.rb +10 -15
- data/lib/action_controller/metal/basic_implicit_render.rb +13 -0
- data/lib/action_controller/metal/conditional_get.rb +118 -44
- data/lib/action_controller/metal/content_security_policy.rb +52 -0
- data/lib/action_controller/metal/cookies.rb +3 -3
- data/lib/action_controller/metal/data_streaming.rb +27 -46
- data/lib/action_controller/metal/etag_with_flash.rb +18 -0
- data/lib/action_controller/metal/etag_with_template_digest.rb +20 -13
- data/lib/action_controller/metal/exceptions.rb +8 -14
- data/lib/action_controller/metal/flash.rb +4 -3
- data/lib/action_controller/metal/force_ssl.rb +23 -21
- data/lib/action_controller/metal/head.rb +21 -19
- data/lib/action_controller/metal/helpers.rb +24 -14
- data/lib/action_controller/metal/http_authentication.rb +64 -57
- data/lib/action_controller/metal/implicit_render.rb +62 -8
- data/lib/action_controller/metal/instrumentation.rb +19 -21
- data/lib/action_controller/metal/live.rb +90 -106
- data/lib/action_controller/metal/mime_responds.rb +33 -46
- data/lib/action_controller/metal/parameter_encoding.rb +51 -0
- data/lib/action_controller/metal/params_wrapper.rb +61 -53
- data/lib/action_controller/metal/redirecting.rb +49 -28
- data/lib/action_controller/metal/renderers.rb +87 -44
- data/lib/action_controller/metal/rendering.rb +72 -50
- data/lib/action_controller/metal/request_forgery_protection.rb +203 -92
- data/lib/action_controller/metal/rescue.rb +9 -16
- data/lib/action_controller/metal/streaming.rb +12 -10
- data/lib/action_controller/metal/strong_parameters.rb +582 -165
- data/lib/action_controller/metal/testing.rb +2 -17
- data/lib/action_controller/metal/url_for.rb +19 -10
- data/lib/action_controller/metal.rb +98 -83
- data/lib/action_controller/railtie.rb +28 -10
- data/lib/action_controller/railties/helpers.rb +2 -0
- data/lib/action_controller/renderer.rb +117 -0
- data/lib/action_controller/template_assertions.rb +11 -0
- data/lib/action_controller/test_case.rb +280 -411
- data/lib/action_controller.rb +29 -21
- data/lib/action_dispatch/http/cache.rb +93 -47
- data/lib/action_dispatch/http/content_security_policy.rb +272 -0
- data/lib/action_dispatch/http/filter_parameters.rb +26 -20
- data/lib/action_dispatch/http/filter_redirect.rb +10 -11
- data/lib/action_dispatch/http/headers.rb +55 -22
- data/lib/action_dispatch/http/mime_negotiation.rb +56 -41
- data/lib/action_dispatch/http/mime_type.rb +134 -121
- data/lib/action_dispatch/http/mime_types.rb +20 -6
- data/lib/action_dispatch/http/parameter_filter.rb +25 -11
- data/lib/action_dispatch/http/parameters.rb +98 -39
- data/lib/action_dispatch/http/rack_cache.rb +2 -0
- data/lib/action_dispatch/http/request.rb +200 -118
- data/lib/action_dispatch/http/response.rb +225 -110
- data/lib/action_dispatch/http/upload.rb +12 -6
- data/lib/action_dispatch/http/url.rb +110 -28
- data/lib/action_dispatch/journey/formatter.rb +55 -32
- data/lib/action_dispatch/journey/gtg/builder.rb +7 -5
- data/lib/action_dispatch/journey/gtg/simulator.rb +3 -9
- data/lib/action_dispatch/journey/gtg/transition_table.rb +17 -16
- data/lib/action_dispatch/journey/nfa/builder.rb +5 -3
- data/lib/action_dispatch/journey/nfa/dot.rb +13 -13
- data/lib/action_dispatch/journey/nfa/simulator.rb +3 -1
- data/lib/action_dispatch/journey/nfa/transition_table.rb +5 -48
- data/lib/action_dispatch/journey/nodes/node.rb +18 -6
- data/lib/action_dispatch/journey/parser.rb +23 -22
- data/lib/action_dispatch/journey/parser.y +3 -2
- data/lib/action_dispatch/journey/parser_extras.rb +12 -4
- data/lib/action_dispatch/journey/path/pattern.rb +50 -44
- data/lib/action_dispatch/journey/route.rb +106 -28
- data/lib/action_dispatch/journey/router/utils.rb +20 -11
- data/lib/action_dispatch/journey/router.rb +35 -23
- data/lib/action_dispatch/journey/routes.rb +18 -16
- data/lib/action_dispatch/journey/scanner.rb +18 -15
- data/lib/action_dispatch/journey/visitors.rb +99 -52
- data/lib/action_dispatch/journey.rb +7 -5
- data/lib/action_dispatch/middleware/callbacks.rb +1 -2
- data/lib/action_dispatch/middleware/cookies.rb +304 -193
- data/lib/action_dispatch/middleware/debug_exceptions.rb +152 -57
- data/lib/action_dispatch/middleware/debug_locks.rb +124 -0
- data/lib/action_dispatch/middleware/exception_wrapper.rb +68 -69
- data/lib/action_dispatch/middleware/executor.rb +21 -0
- data/lib/action_dispatch/middleware/flash.rb +78 -54
- data/lib/action_dispatch/middleware/public_exceptions.rb +27 -25
- data/lib/action_dispatch/middleware/reloader.rb +5 -91
- data/lib/action_dispatch/middleware/remote_ip.rb +41 -31
- data/lib/action_dispatch/middleware/request_id.rb +17 -9
- data/lib/action_dispatch/middleware/session/abstract_store.rb +28 -26
- data/lib/action_dispatch/middleware/session/cache_store.rb +14 -9
- data/lib/action_dispatch/middleware/session/cookie_store.rb +62 -67
- data/lib/action_dispatch/middleware/session/mem_cache_store.rb +8 -2
- data/lib/action_dispatch/middleware/show_exceptions.rb +26 -22
- data/lib/action_dispatch/middleware/ssl.rb +114 -36
- data/lib/action_dispatch/middleware/stack.rb +31 -44
- data/lib/action_dispatch/middleware/static.rb +57 -50
- data/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb +2 -14
- data/lib/action_dispatch/middleware/templates/rescues/{_source.erb → _source.html.erb} +0 -0
- data/lib/action_dispatch/middleware/templates/rescues/_source.text.erb +8 -0
- data/lib/action_dispatch/middleware/templates/rescues/invalid_statement.html.erb +21 -0
- data/lib/action_dispatch/middleware/templates/rescues/invalid_statement.text.erb +13 -0
- data/lib/action_dispatch/middleware/templates/rescues/layout.erb +1 -0
- data/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb +1 -1
- data/lib/action_dispatch/middleware/templates/rescues/template_error.text.erb +1 -1
- data/lib/action_dispatch/middleware/templates/routes/_route.html.erb +4 -4
- data/lib/action_dispatch/middleware/templates/routes/_table.html.erb +64 -64
- data/lib/action_dispatch/railtie.rb +19 -11
- data/lib/action_dispatch/request/session.rb +99 -58
- data/lib/action_dispatch/request/utils.rb +67 -24
- data/lib/action_dispatch/routing/endpoint.rb +9 -2
- data/lib/action_dispatch/routing/inspector.rb +58 -67
- data/lib/action_dispatch/routing/mapper.rb +733 -447
- data/lib/action_dispatch/routing/polymorphic_routes.rb +161 -139
- data/lib/action_dispatch/routing/redirection.rb +36 -26
- data/lib/action_dispatch/routing/route_set.rb +321 -291
- data/lib/action_dispatch/routing/routes_proxy.rb +32 -5
- data/lib/action_dispatch/routing/url_for.rb +65 -25
- data/lib/action_dispatch/routing.rb +17 -18
- data/lib/action_dispatch/system_test_case.rb +147 -0
- data/lib/action_dispatch/system_testing/browser.rb +49 -0
- data/lib/action_dispatch/system_testing/driver.rb +59 -0
- data/lib/action_dispatch/system_testing/server.rb +31 -0
- data/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb +96 -0
- data/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb +31 -0
- data/lib/action_dispatch/system_testing/test_helpers/undef_methods.rb +26 -0
- data/lib/action_dispatch/testing/assertion_response.rb +47 -0
- data/lib/action_dispatch/testing/assertions/response.rb +45 -20
- data/lib/action_dispatch/testing/assertions/routing.rb +30 -26
- data/lib/action_dispatch/testing/assertions.rb +6 -4
- data/lib/action_dispatch/testing/integration.rb +347 -209
- data/lib/action_dispatch/testing/request_encoder.rb +55 -0
- data/lib/action_dispatch/testing/test_process.rb +28 -22
- data/lib/action_dispatch/testing/test_request.rb +27 -34
- data/lib/action_dispatch/testing/test_response.rb +35 -7
- data/lib/action_dispatch.rb +26 -19
- data/lib/action_pack/gem_version.rb +5 -3
- data/lib/action_pack/version.rb +3 -1
- data/lib/action_pack.rb +4 -2
- metadata +50 -38
- data/lib/action_controller/metal/hide_actions.rb +0 -40
- data/lib/action_controller/metal/rack_delegation.rb +0 -32
- data/lib/action_controller/middleware.rb +0 -39
- data/lib/action_controller/model_naming.rb +0 -12
- data/lib/action_dispatch/journey/backwards.rb +0 -5
- data/lib/action_dispatch/journey/router/strexp.rb +0 -27
- data/lib/action_dispatch/middleware/params_parser.rb +0 -60
- data/lib/action_dispatch/testing/assertions/dom.rb +0 -3
- data/lib/action_dispatch/testing/assertions/selector.rb +0 -3
- data/lib/action_dispatch/testing/assertions/tag.rb +0 -3
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActionDispatch
|
4
|
+
class RequestEncoder # :nodoc:
|
5
|
+
class IdentityEncoder
|
6
|
+
def content_type; end
|
7
|
+
def accept_header; end
|
8
|
+
def encode_params(params); params; end
|
9
|
+
def response_parser; -> body { body }; end
|
10
|
+
end
|
11
|
+
|
12
|
+
@encoders = { identity: IdentityEncoder.new }
|
13
|
+
|
14
|
+
attr_reader :response_parser
|
15
|
+
|
16
|
+
def initialize(mime_name, param_encoder, response_parser)
|
17
|
+
@mime = Mime[mime_name]
|
18
|
+
|
19
|
+
unless @mime
|
20
|
+
raise ArgumentError, "Can't register a request encoder for " \
|
21
|
+
"unregistered MIME Type: #{mime_name}. See `Mime::Type.register`."
|
22
|
+
end
|
23
|
+
|
24
|
+
@response_parser = response_parser || -> body { body }
|
25
|
+
@param_encoder = param_encoder || :"to_#{@mime.symbol}".to_proc
|
26
|
+
end
|
27
|
+
|
28
|
+
def content_type
|
29
|
+
@mime.to_s
|
30
|
+
end
|
31
|
+
|
32
|
+
def accept_header
|
33
|
+
@mime.to_s
|
34
|
+
end
|
35
|
+
|
36
|
+
def encode_params(params)
|
37
|
+
@param_encoder.call(params) if params
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.parser(content_type)
|
41
|
+
mime = Mime::Type.lookup(content_type)
|
42
|
+
encoder(mime ? mime.ref : nil).response_parser
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.encoder(name)
|
46
|
+
@encoders[name] || @encoders[:identity]
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.register_encoder(mime_name, param_encoder: nil, response_parser: nil)
|
50
|
+
@encoders[mime_name] = new(mime_name, param_encoder, response_parser)
|
51
|
+
end
|
52
|
+
|
53
|
+
register_encoder :json, response_parser: -> body { JSON.parse(body) }
|
54
|
+
end
|
55
|
+
end
|
@@ -1,13 +1,34 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "action_dispatch/middleware/cookies"
|
4
|
+
require "action_dispatch/middleware/flash"
|
4
5
|
|
5
6
|
module ActionDispatch
|
6
7
|
module TestProcess
|
8
|
+
module FixtureFile
|
9
|
+
# Shortcut for <tt>Rack::Test::UploadedFile.new(File.join(ActionDispatch::IntegrationTest.fixture_path, path), type)</tt>:
|
10
|
+
#
|
11
|
+
# post :change_avatar, avatar: fixture_file_upload('files/spongebob.png', 'image/png')
|
12
|
+
#
|
13
|
+
# To upload binary files on Windows, pass <tt>:binary</tt> as the last parameter.
|
14
|
+
# This will not affect other platforms:
|
15
|
+
#
|
16
|
+
# post :change_avatar, avatar: fixture_file_upload('files/spongebob.png', 'image/png', :binary)
|
17
|
+
def fixture_file_upload(path, mime_type = nil, binary = false)
|
18
|
+
if self.class.respond_to?(:fixture_path) && self.class.fixture_path &&
|
19
|
+
!File.exist?(path)
|
20
|
+
path = File.join(self.class.fixture_path, path)
|
21
|
+
end
|
22
|
+
Rack::Test::UploadedFile.new(path, mime_type, binary)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
include FixtureFile
|
27
|
+
|
7
28
|
def assigns(key = nil)
|
8
|
-
|
9
|
-
|
10
|
-
|
29
|
+
raise NoMethodError,
|
30
|
+
"assigns has been extracted to a gem. To continue using it,
|
31
|
+
add `gem 'rails-controller-testing'` to your Gemfile."
|
11
32
|
end
|
12
33
|
|
13
34
|
def session
|
@@ -19,26 +40,11 @@ module ActionDispatch
|
|
19
40
|
end
|
20
41
|
|
21
42
|
def cookies
|
22
|
-
@request.
|
43
|
+
@cookie_jar ||= Cookies::CookieJar.build(@request, @request.cookies)
|
23
44
|
end
|
24
45
|
|
25
46
|
def redirect_to_url
|
26
47
|
@response.redirect_url
|
27
48
|
end
|
28
|
-
|
29
|
-
# Shortcut for <tt>Rack::Test::UploadedFile.new(File.join(ActionController::TestCase.fixture_path, path), type)</tt>:
|
30
|
-
#
|
31
|
-
# post :change_avatar, avatar: fixture_file_upload('files/spongebob.png', 'image/png')
|
32
|
-
#
|
33
|
-
# To upload binary files on Windows, pass <tt>:binary</tt> as the last parameter.
|
34
|
-
# This will not affect other platforms:
|
35
|
-
#
|
36
|
-
# post :change_avatar, avatar: fixture_file_upload('files/spongebob.png', 'image/png', :binary)
|
37
|
-
def fixture_file_upload(path, mime_type = nil, binary = false)
|
38
|
-
if self.class.respond_to?(:fixture_path) && self.class.fixture_path
|
39
|
-
path = File.join(self.class.fixture_path, path)
|
40
|
-
end
|
41
|
-
Rack::Test::UploadedFile.new(path, mime_type, binary)
|
42
|
-
end
|
43
49
|
end
|
44
50
|
end
|
@@ -1,41 +1,46 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "active_support/core_ext/hash/indifferent_access"
|
4
|
+
require "rack/utils"
|
3
5
|
|
4
6
|
module ActionDispatch
|
5
7
|
class TestRequest < Request
|
6
|
-
DEFAULT_ENV = Rack::MockRequest.env_for(
|
7
|
-
|
8
|
-
|
9
|
-
|
8
|
+
DEFAULT_ENV = Rack::MockRequest.env_for("/",
|
9
|
+
"HTTP_HOST" => "test.host",
|
10
|
+
"REMOTE_ADDR" => "0.0.0.0",
|
11
|
+
"HTTP_USER_AGENT" => "Rails Testing",
|
10
12
|
)
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
+
# Create a new test request with default +env+ values.
|
15
|
+
def self.create(env = {})
|
16
|
+
env = Rails.application.env_config.merge(env) if defined?(Rails.application) && Rails.application
|
17
|
+
env["rack.request.cookie_hash"] ||= {}.with_indifferent_access
|
18
|
+
new(default_env.merge(env))
|
14
19
|
end
|
15
20
|
|
16
|
-
def
|
17
|
-
|
18
|
-
super(default_env.merge(env))
|
21
|
+
def self.default_env
|
22
|
+
DEFAULT_ENV
|
19
23
|
end
|
24
|
+
private_class_method :default_env
|
20
25
|
|
21
26
|
def request_method=(method)
|
22
|
-
|
27
|
+
super(method.to_s.upcase)
|
23
28
|
end
|
24
29
|
|
25
30
|
def host=(host)
|
26
|
-
|
31
|
+
set_header("HTTP_HOST", host)
|
27
32
|
end
|
28
33
|
|
29
34
|
def port=(number)
|
30
|
-
|
35
|
+
set_header("SERVER_PORT", number.to_i)
|
31
36
|
end
|
32
37
|
|
33
38
|
def request_uri=(uri)
|
34
|
-
|
39
|
+
set_header("REQUEST_URI", uri)
|
35
40
|
end
|
36
41
|
|
37
42
|
def path=(path)
|
38
|
-
|
43
|
+
set_header("PATH_INFO", path)
|
39
44
|
end
|
40
45
|
|
41
46
|
def action=(action_name)
|
@@ -43,36 +48,24 @@ module ActionDispatch
|
|
43
48
|
end
|
44
49
|
|
45
50
|
def if_modified_since=(last_modified)
|
46
|
-
|
51
|
+
set_header("HTTP_IF_MODIFIED_SINCE", last_modified)
|
47
52
|
end
|
48
53
|
|
49
54
|
def if_none_match=(etag)
|
50
|
-
|
55
|
+
set_header("HTTP_IF_NONE_MATCH", etag)
|
51
56
|
end
|
52
57
|
|
53
58
|
def remote_addr=(addr)
|
54
|
-
|
59
|
+
set_header("REMOTE_ADDR", addr)
|
55
60
|
end
|
56
61
|
|
57
62
|
def user_agent=(user_agent)
|
58
|
-
|
63
|
+
set_header("HTTP_USER_AGENT", user_agent)
|
59
64
|
end
|
60
65
|
|
61
66
|
def accept=(mime_types)
|
62
|
-
|
63
|
-
|
64
|
-
end
|
65
|
-
|
66
|
-
alias :rack_cookies :cookies
|
67
|
-
|
68
|
-
def cookies
|
69
|
-
@cookies ||= {}.with_indifferent_access
|
70
|
-
end
|
71
|
-
|
72
|
-
private
|
73
|
-
|
74
|
-
def default_env
|
75
|
-
DEFAULT_ENV
|
67
|
+
delete_header("action_dispatch.request.accepts")
|
68
|
+
set_header("HTTP_ACCEPT", Array(mime_types).collect(&:to_s).join(","))
|
76
69
|
end
|
77
70
|
end
|
78
71
|
end
|
@@ -1,3 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "action_dispatch/testing/request_encoder"
|
4
|
+
|
1
5
|
module ActionDispatch
|
2
6
|
# Integration test methods such as ActionDispatch::Integration::Session#get
|
3
7
|
# and ActionDispatch::Integration::Session#post return objects of class
|
@@ -7,19 +11,43 @@ module ActionDispatch
|
|
7
11
|
# See Response for more information on controller response objects.
|
8
12
|
class TestResponse < Response
|
9
13
|
def self.from_response(response)
|
10
|
-
new response.status, response.headers, response.body
|
14
|
+
new response.status, response.headers, response.body
|
15
|
+
end
|
16
|
+
|
17
|
+
def initialize(*) # :nodoc:
|
18
|
+
super
|
19
|
+
@response_parser = RequestEncoder.parser(content_type)
|
11
20
|
end
|
12
21
|
|
13
22
|
# Was the response successful?
|
14
|
-
|
23
|
+
def success?
|
24
|
+
ActiveSupport::Deprecation.warn(<<-MSG.squish)
|
25
|
+
The success? predicate is deprecated and will be removed in Rails 6.0.
|
26
|
+
Please use successful? as provided by Rack::Response::Helpers.
|
27
|
+
MSG
|
28
|
+
successful?
|
29
|
+
end
|
15
30
|
|
16
31
|
# Was the URL not found?
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
32
|
+
def missing?
|
33
|
+
ActiveSupport::Deprecation.warn(<<-MSG.squish)
|
34
|
+
The missing? predicate is deprecated and will be removed in Rails 6.0.
|
35
|
+
Please use not_found? as provided by Rack::Response::Helpers.
|
36
|
+
MSG
|
37
|
+
not_found?
|
38
|
+
end
|
21
39
|
|
22
40
|
# Was there a server-side error?
|
23
|
-
|
41
|
+
def error?
|
42
|
+
ActiveSupport::Deprecation.warn(<<-MSG.squish)
|
43
|
+
The error? predicate is deprecated and will be removed in Rails 6.0.
|
44
|
+
Please use server_error? as provided by Rack::Response::Helpers.
|
45
|
+
MSG
|
46
|
+
server_error?
|
47
|
+
end
|
48
|
+
|
49
|
+
def parsed_body
|
50
|
+
@parsed_body ||= @response_parser.call(body)
|
51
|
+
end
|
24
52
|
end
|
25
53
|
end
|
data/lib/action_dispatch.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
#--
|
2
|
-
# Copyright (c) 2004-
|
4
|
+
# Copyright (c) 2004-2018 David Heinemeier Hansson
|
3
5
|
#
|
4
6
|
# Permission is hereby granted, free of charge, to any person obtaining
|
5
7
|
# a copy of this software and associated documentation files (the
|
@@ -21,15 +23,15 @@
|
|
21
23
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
24
|
#++
|
23
25
|
|
24
|
-
require
|
25
|
-
require
|
26
|
-
require
|
26
|
+
require "active_support"
|
27
|
+
require "active_support/rails"
|
28
|
+
require "active_support/core_ext/module/attribute_accessors"
|
27
29
|
|
28
|
-
require
|
29
|
-
require
|
30
|
+
require "action_pack"
|
31
|
+
require "rack"
|
30
32
|
|
31
33
|
module Rack
|
32
|
-
autoload :Test,
|
34
|
+
autoload :Test, "rack/test"
|
33
35
|
end
|
34
36
|
|
35
37
|
module ActionDispatch
|
@@ -39,20 +41,22 @@ module ActionDispatch
|
|
39
41
|
end
|
40
42
|
|
41
43
|
eager_autoload do
|
42
|
-
autoload_under
|
44
|
+
autoload_under "http" do
|
45
|
+
autoload :ContentSecurityPolicy
|
43
46
|
autoload :Request
|
44
47
|
autoload :Response
|
45
48
|
end
|
46
49
|
end
|
47
50
|
|
48
|
-
autoload_under
|
51
|
+
autoload_under "middleware" do
|
49
52
|
autoload :RequestId
|
50
53
|
autoload :Callbacks
|
51
54
|
autoload :Cookies
|
52
55
|
autoload :DebugExceptions
|
56
|
+
autoload :DebugLocks
|
53
57
|
autoload :ExceptionWrapper
|
58
|
+
autoload :Executor
|
54
59
|
autoload :Flash
|
55
|
-
autoload :ParamsParser
|
56
60
|
autoload :PublicExceptions
|
57
61
|
autoload :Reloader
|
58
62
|
autoload :RemoteIp
|
@@ -62,7 +66,7 @@ module ActionDispatch
|
|
62
66
|
end
|
63
67
|
|
64
68
|
autoload :Journey
|
65
|
-
autoload :MiddlewareStack,
|
69
|
+
autoload :MiddlewareStack, "action_dispatch/middleware/stack"
|
66
70
|
autoload :Routing
|
67
71
|
|
68
72
|
module Http
|
@@ -74,30 +78,33 @@ module ActionDispatch
|
|
74
78
|
autoload :Parameters
|
75
79
|
autoload :ParameterFilter
|
76
80
|
autoload :Upload
|
77
|
-
autoload :UploadedFile,
|
81
|
+
autoload :UploadedFile, "action_dispatch/http/upload"
|
78
82
|
autoload :URL
|
79
83
|
end
|
80
84
|
|
81
85
|
module Session
|
82
|
-
autoload :AbstractStore,
|
83
|
-
autoload :CookieStore,
|
84
|
-
autoload :MemCacheStore,
|
85
|
-
autoload :CacheStore,
|
86
|
+
autoload :AbstractStore, "action_dispatch/middleware/session/abstract_store"
|
87
|
+
autoload :CookieStore, "action_dispatch/middleware/session/cookie_store"
|
88
|
+
autoload :MemCacheStore, "action_dispatch/middleware/session/mem_cache_store"
|
89
|
+
autoload :CacheStore, "action_dispatch/middleware/session/cache_store"
|
86
90
|
end
|
87
91
|
|
88
92
|
mattr_accessor :test_app
|
89
93
|
|
90
|
-
autoload_under
|
94
|
+
autoload_under "testing" do
|
91
95
|
autoload :Assertions
|
92
96
|
autoload :Integration
|
93
|
-
autoload :IntegrationTest,
|
97
|
+
autoload :IntegrationTest, "action_dispatch/testing/integration"
|
94
98
|
autoload :TestProcess
|
95
99
|
autoload :TestRequest
|
96
100
|
autoload :TestResponse
|
101
|
+
autoload :AssertionResponse
|
97
102
|
end
|
103
|
+
|
104
|
+
autoload :SystemTestCase, "action_dispatch/system_test_case"
|
98
105
|
end
|
99
106
|
|
100
|
-
autoload :Mime,
|
107
|
+
autoload :Mime, "action_dispatch/http/mime_type"
|
101
108
|
|
102
109
|
ActiveSupport.on_load(:action_view) do
|
103
110
|
ActionView::Base.default_formats ||= Mime::SET.symbols
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module ActionPack
|
2
4
|
# Returns the version of the currently loaded Action Pack as a <tt>Gem::Version</tt>
|
3
5
|
def self.gem_version
|
@@ -5,10 +7,10 @@ module ActionPack
|
|
5
7
|
end
|
6
8
|
|
7
9
|
module VERSION
|
8
|
-
MAJOR =
|
10
|
+
MAJOR = 5
|
9
11
|
MINOR = 2
|
10
|
-
TINY =
|
11
|
-
PRE =
|
12
|
+
TINY = 4
|
13
|
+
PRE = nil
|
12
14
|
|
13
15
|
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
|
14
16
|
end
|
data/lib/action_pack/version.rb
CHANGED
data/lib/action_pack.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
#--
|
2
|
-
# Copyright (c) 2004-
|
4
|
+
# Copyright (c) 2004-2018 David Heinemeier Hansson
|
3
5
|
#
|
4
6
|
# Permission is hereby granted, free of charge, to any person obtaining
|
5
7
|
# a copy of this software and associated documentation files (the
|
@@ -21,4 +23,4 @@
|
|
21
23
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
24
|
#++
|
23
25
|
|
24
|
-
require
|
26
|
+
require "action_pack/version"
|