actionpack 4.2.11.1 → 5.2.6

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.

Files changed (166) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +328 -458
  3. data/MIT-LICENSE +1 -1
  4. data/README.rdoc +6 -7
  5. data/lib/abstract_controller/asset_paths.rb +2 -0
  6. data/lib/abstract_controller/base.rb +45 -49
  7. data/lib/{action_controller → abstract_controller}/caching/fragments.rb +78 -15
  8. data/lib/abstract_controller/caching.rb +66 -0
  9. data/lib/abstract_controller/callbacks.rb +47 -31
  10. data/lib/abstract_controller/collector.rb +8 -11
  11. data/lib/abstract_controller/error.rb +6 -0
  12. data/lib/abstract_controller/helpers.rb +25 -25
  13. data/lib/abstract_controller/logger.rb +2 -0
  14. data/lib/abstract_controller/railties/routes_helpers.rb +4 -2
  15. data/lib/abstract_controller/rendering.rb +42 -41
  16. data/lib/abstract_controller/translation.rb +10 -7
  17. data/lib/abstract_controller/url_for.rb +2 -0
  18. data/lib/abstract_controller.rb +12 -5
  19. data/lib/action_controller/api/api_rendering.rb +16 -0
  20. data/lib/action_controller/api.rb +149 -0
  21. data/lib/action_controller/base.rb +27 -19
  22. data/lib/action_controller/caching.rb +14 -57
  23. data/lib/action_controller/form_builder.rb +50 -0
  24. data/lib/action_controller/log_subscriber.rb +10 -15
  25. data/lib/action_controller/metal/basic_implicit_render.rb +13 -0
  26. data/lib/action_controller/metal/conditional_get.rb +118 -44
  27. data/lib/action_controller/metal/content_security_policy.rb +52 -0
  28. data/lib/action_controller/metal/cookies.rb +3 -3
  29. data/lib/action_controller/metal/data_streaming.rb +27 -46
  30. data/lib/action_controller/metal/etag_with_flash.rb +18 -0
  31. data/lib/action_controller/metal/etag_with_template_digest.rb +20 -13
  32. data/lib/action_controller/metal/exceptions.rb +8 -14
  33. data/lib/action_controller/metal/flash.rb +4 -3
  34. data/lib/action_controller/metal/force_ssl.rb +23 -21
  35. data/lib/action_controller/metal/head.rb +21 -19
  36. data/lib/action_controller/metal/helpers.rb +24 -14
  37. data/lib/action_controller/metal/http_authentication.rb +65 -58
  38. data/lib/action_controller/metal/implicit_render.rb +62 -8
  39. data/lib/action_controller/metal/instrumentation.rb +19 -21
  40. data/lib/action_controller/metal/live.rb +90 -106
  41. data/lib/action_controller/metal/mime_responds.rb +33 -46
  42. data/lib/action_controller/metal/parameter_encoding.rb +51 -0
  43. data/lib/action_controller/metal/params_wrapper.rb +61 -53
  44. data/lib/action_controller/metal/redirecting.rb +49 -28
  45. data/lib/action_controller/metal/renderers.rb +87 -44
  46. data/lib/action_controller/metal/rendering.rb +72 -50
  47. data/lib/action_controller/metal/request_forgery_protection.rb +284 -97
  48. data/lib/action_controller/metal/rescue.rb +9 -16
  49. data/lib/action_controller/metal/streaming.rb +12 -10
  50. data/lib/action_controller/metal/strong_parameters.rb +583 -164
  51. data/lib/action_controller/metal/testing.rb +2 -17
  52. data/lib/action_controller/metal/url_for.rb +19 -10
  53. data/lib/action_controller/metal.rb +98 -83
  54. data/lib/action_controller/railtie.rb +28 -10
  55. data/lib/action_controller/railties/helpers.rb +2 -0
  56. data/lib/action_controller/renderer.rb +117 -0
  57. data/lib/action_controller/template_assertions.rb +11 -0
  58. data/lib/action_controller/test_case.rb +282 -413
  59. data/lib/action_controller.rb +29 -21
  60. data/lib/action_dispatch/http/cache.rb +93 -47
  61. data/lib/action_dispatch/http/content_security_policy.rb +272 -0
  62. data/lib/action_dispatch/http/filter_parameters.rb +26 -20
  63. data/lib/action_dispatch/http/filter_redirect.rb +10 -11
  64. data/lib/action_dispatch/http/headers.rb +55 -22
  65. data/lib/action_dispatch/http/mime_negotiation.rb +56 -41
  66. data/lib/action_dispatch/http/mime_type.rb +134 -121
  67. data/lib/action_dispatch/http/mime_types.rb +20 -6
  68. data/lib/action_dispatch/http/parameter_filter.rb +25 -11
  69. data/lib/action_dispatch/http/parameters.rb +98 -39
  70. data/lib/action_dispatch/http/rack_cache.rb +2 -0
  71. data/lib/action_dispatch/http/request.rb +200 -118
  72. data/lib/action_dispatch/http/response.rb +225 -110
  73. data/lib/action_dispatch/http/upload.rb +12 -6
  74. data/lib/action_dispatch/http/url.rb +110 -28
  75. data/lib/action_dispatch/journey/formatter.rb +55 -32
  76. data/lib/action_dispatch/journey/gtg/builder.rb +7 -5
  77. data/lib/action_dispatch/journey/gtg/simulator.rb +3 -9
  78. data/lib/action_dispatch/journey/gtg/transition_table.rb +17 -16
  79. data/lib/action_dispatch/journey/nfa/builder.rb +5 -3
  80. data/lib/action_dispatch/journey/nfa/dot.rb +13 -13
  81. data/lib/action_dispatch/journey/nfa/simulator.rb +3 -1
  82. data/lib/action_dispatch/journey/nfa/transition_table.rb +5 -48
  83. data/lib/action_dispatch/journey/nodes/node.rb +18 -6
  84. data/lib/action_dispatch/journey/parser.rb +23 -22
  85. data/lib/action_dispatch/journey/parser.y +3 -2
  86. data/lib/action_dispatch/journey/parser_extras.rb +12 -4
  87. data/lib/action_dispatch/journey/path/pattern.rb +50 -44
  88. data/lib/action_dispatch/journey/route.rb +106 -28
  89. data/lib/action_dispatch/journey/router/utils.rb +20 -11
  90. data/lib/action_dispatch/journey/router.rb +35 -23
  91. data/lib/action_dispatch/journey/routes.rb +18 -16
  92. data/lib/action_dispatch/journey/scanner.rb +18 -15
  93. data/lib/action_dispatch/journey/visitors.rb +99 -52
  94. data/lib/action_dispatch/journey.rb +7 -5
  95. data/lib/action_dispatch/middleware/callbacks.rb +1 -2
  96. data/lib/action_dispatch/middleware/cookies.rb +304 -193
  97. data/lib/action_dispatch/middleware/debug_exceptions.rb +152 -57
  98. data/lib/action_dispatch/middleware/debug_locks.rb +124 -0
  99. data/lib/action_dispatch/middleware/exception_wrapper.rb +68 -69
  100. data/lib/action_dispatch/middleware/executor.rb +21 -0
  101. data/lib/action_dispatch/middleware/flash.rb +78 -54
  102. data/lib/action_dispatch/middleware/public_exceptions.rb +27 -25
  103. data/lib/action_dispatch/middleware/reloader.rb +5 -91
  104. data/lib/action_dispatch/middleware/remote_ip.rb +41 -31
  105. data/lib/action_dispatch/middleware/request_id.rb +17 -9
  106. data/lib/action_dispatch/middleware/session/abstract_store.rb +41 -25
  107. data/lib/action_dispatch/middleware/session/cache_store.rb +24 -14
  108. data/lib/action_dispatch/middleware/session/cookie_store.rb +72 -67
  109. data/lib/action_dispatch/middleware/session/mem_cache_store.rb +8 -2
  110. data/lib/action_dispatch/middleware/show_exceptions.rb +26 -22
  111. data/lib/action_dispatch/middleware/ssl.rb +114 -36
  112. data/lib/action_dispatch/middleware/stack.rb +31 -44
  113. data/lib/action_dispatch/middleware/static.rb +57 -50
  114. data/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb +2 -14
  115. data/lib/action_dispatch/middleware/templates/rescues/{_source.erb → _source.html.erb} +0 -0
  116. data/lib/action_dispatch/middleware/templates/rescues/_source.text.erb +8 -0
  117. data/lib/action_dispatch/middleware/templates/rescues/invalid_statement.html.erb +21 -0
  118. data/lib/action_dispatch/middleware/templates/rescues/invalid_statement.text.erb +13 -0
  119. data/lib/action_dispatch/middleware/templates/rescues/layout.erb +1 -0
  120. data/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb +1 -1
  121. data/lib/action_dispatch/middleware/templates/rescues/template_error.text.erb +1 -1
  122. data/lib/action_dispatch/middleware/templates/routes/_route.html.erb +4 -4
  123. data/lib/action_dispatch/middleware/templates/routes/_table.html.erb +64 -64
  124. data/lib/action_dispatch/railtie.rb +19 -11
  125. data/lib/action_dispatch/request/session.rb +106 -59
  126. data/lib/action_dispatch/request/utils.rb +67 -24
  127. data/lib/action_dispatch/routing/endpoint.rb +9 -2
  128. data/lib/action_dispatch/routing/inspector.rb +58 -67
  129. data/lib/action_dispatch/routing/mapper.rb +733 -447
  130. data/lib/action_dispatch/routing/polymorphic_routes.rb +166 -140
  131. data/lib/action_dispatch/routing/redirection.rb +36 -26
  132. data/lib/action_dispatch/routing/route_set.rb +321 -291
  133. data/lib/action_dispatch/routing/routes_proxy.rb +32 -5
  134. data/lib/action_dispatch/routing/url_for.rb +65 -25
  135. data/lib/action_dispatch/routing.rb +17 -18
  136. data/lib/action_dispatch/system_test_case.rb +147 -0
  137. data/lib/action_dispatch/system_testing/browser.rb +49 -0
  138. data/lib/action_dispatch/system_testing/driver.rb +59 -0
  139. data/lib/action_dispatch/system_testing/server.rb +31 -0
  140. data/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb +96 -0
  141. data/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb +31 -0
  142. data/lib/action_dispatch/system_testing/test_helpers/undef_methods.rb +26 -0
  143. data/lib/action_dispatch/testing/assertion_response.rb +47 -0
  144. data/lib/action_dispatch/testing/assertions/response.rb +45 -20
  145. data/lib/action_dispatch/testing/assertions/routing.rb +30 -26
  146. data/lib/action_dispatch/testing/assertions.rb +6 -4
  147. data/lib/action_dispatch/testing/integration.rb +348 -209
  148. data/lib/action_dispatch/testing/request_encoder.rb +55 -0
  149. data/lib/action_dispatch/testing/test_process.rb +28 -22
  150. data/lib/action_dispatch/testing/test_request.rb +27 -34
  151. data/lib/action_dispatch/testing/test_response.rb +35 -7
  152. data/lib/action_dispatch.rb +27 -19
  153. data/lib/action_pack/gem_version.rb +5 -3
  154. data/lib/action_pack/version.rb +3 -1
  155. data/lib/action_pack.rb +4 -2
  156. metadata +56 -38
  157. data/lib/action_controller/metal/hide_actions.rb +0 -40
  158. data/lib/action_controller/metal/rack_delegation.rb +0 -32
  159. data/lib/action_controller/middleware.rb +0 -39
  160. data/lib/action_controller/model_naming.rb +0 -12
  161. data/lib/action_dispatch/journey/backwards.rb +0 -5
  162. data/lib/action_dispatch/journey/router/strexp.rb +0 -27
  163. data/lib/action_dispatch/middleware/params_parser.rb +0 -60
  164. data/lib/action_dispatch/testing/assertions/dom.rb +0 -3
  165. data/lib/action_dispatch/testing/assertions/selector.rb +0 -3
  166. 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
- require 'action_dispatch/middleware/cookies'
2
- require 'action_dispatch/middleware/flash'
3
- require 'active_support/core_ext/hash/indifferent_access'
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
- assigns = {}.with_indifferent_access
9
- @controller.view_assigns.each { |k, v| assigns.regular_writer(k, v) }
10
- key.nil? ? assigns : assigns[key]
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.cookie_jar
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
- require 'active_support/core_ext/hash/indifferent_access'
2
- require 'rack/utils'
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
- 'HTTP_HOST' => 'test.host',
8
- 'REMOTE_ADDR' => '0.0.0.0',
9
- 'HTTP_USER_AGENT' => 'Rails Testing'
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
- def self.new(env = {})
13
- super
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 initialize(env = {})
17
- env = Rails.application.env_config.merge(env) if defined?(Rails.application) && Rails.application
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
- @env['REQUEST_METHOD'] = method.to_s.upcase
27
+ super(method.to_s.upcase)
23
28
  end
24
29
 
25
30
  def host=(host)
26
- @env['HTTP_HOST'] = host
31
+ set_header("HTTP_HOST", host)
27
32
  end
28
33
 
29
34
  def port=(number)
30
- @env['SERVER_PORT'] = number.to_i
35
+ set_header("SERVER_PORT", number.to_i)
31
36
  end
32
37
 
33
38
  def request_uri=(uri)
34
- @env['REQUEST_URI'] = uri
39
+ set_header("REQUEST_URI", uri)
35
40
  end
36
41
 
37
42
  def path=(path)
38
- @env['PATH_INFO'] = path
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
- @env['HTTP_IF_MODIFIED_SINCE'] = last_modified
51
+ set_header("HTTP_IF_MODIFIED_SINCE", last_modified)
47
52
  end
48
53
 
49
54
  def if_none_match=(etag)
50
- @env['HTTP_IF_NONE_MATCH'] = etag
55
+ set_header("HTTP_IF_NONE_MATCH", etag)
51
56
  end
52
57
 
53
58
  def remote_addr=(addr)
54
- @env['REMOTE_ADDR'] = addr
59
+ set_header("REMOTE_ADDR", addr)
55
60
  end
56
61
 
57
62
  def user_agent=(user_agent)
58
- @env['HTTP_USER_AGENT'] = user_agent
63
+ set_header("HTTP_USER_AGENT", user_agent)
59
64
  end
60
65
 
61
66
  def accept=(mime_types)
62
- @env.delete('action_dispatch.request.accepts')
63
- @env['HTTP_ACCEPT'] = Array(mime_types).collect { |mime_type| mime_type.to_s }.join(",")
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, default_headers: nil
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
- alias_method :success?, :successful?
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
- alias_method :missing?, :not_found?
18
-
19
- # Were we redirected?
20
- alias_method :redirect?, :redirection?
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
- alias_method :error?, :server_error?
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
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  #--
2
- # Copyright (c) 2004-2014 David Heinemeier Hansson
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 'active_support'
25
- require 'active_support/rails'
26
- require 'active_support/core_ext/module/attribute_accessors'
26
+ require "active_support"
27
+ require "active_support/rails"
28
+ require "active_support/core_ext/module/attribute_accessors"
27
29
 
28
- require 'action_pack'
29
- require 'rack'
30
+ require "action_pack"
31
+ require "rack"
30
32
 
31
33
  module Rack
32
- autoload :Test, 'rack/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 'http' do
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 'middleware' do
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, 'action_dispatch/middleware/stack'
69
+ autoload :MiddlewareStack, "action_dispatch/middleware/stack"
66
70
  autoload :Routing
67
71
 
68
72
  module Http
@@ -74,30 +78,34 @@ module ActionDispatch
74
78
  autoload :Parameters
75
79
  autoload :ParameterFilter
76
80
  autoload :Upload
77
- autoload :UploadedFile, 'action_dispatch/http/upload'
81
+ autoload :UploadedFile, "action_dispatch/http/upload"
78
82
  autoload :URL
79
83
  end
80
84
 
81
85
  module Session
82
- autoload :AbstractStore, 'action_dispatch/middleware/session/abstract_store'
83
- autoload :CookieStore, 'action_dispatch/middleware/session/cookie_store'
84
- autoload :MemCacheStore, 'action_dispatch/middleware/session/mem_cache_store'
85
- autoload :CacheStore, 'action_dispatch/middleware/session/cache_store'
86
+ autoload :AbstractStore, "action_dispatch/middleware/session/abstract_store"
87
+ autoload :AbstractSecureStore, "action_dispatch/middleware/session/abstract_store"
88
+ autoload :CookieStore, "action_dispatch/middleware/session/cookie_store"
89
+ autoload :MemCacheStore, "action_dispatch/middleware/session/mem_cache_store"
90
+ autoload :CacheStore, "action_dispatch/middleware/session/cache_store"
86
91
  end
87
92
 
88
93
  mattr_accessor :test_app
89
94
 
90
- autoload_under 'testing' do
95
+ autoload_under "testing" do
91
96
  autoload :Assertions
92
97
  autoload :Integration
93
- autoload :IntegrationTest, 'action_dispatch/testing/integration'
98
+ autoload :IntegrationTest, "action_dispatch/testing/integration"
94
99
  autoload :TestProcess
95
100
  autoload :TestRequest
96
101
  autoload :TestResponse
102
+ autoload :AssertionResponse
97
103
  end
104
+
105
+ autoload :SystemTestCase, "action_dispatch/system_test_case"
98
106
  end
99
107
 
100
- autoload :Mime, 'action_dispatch/http/mime_type'
108
+ autoload :Mime, "action_dispatch/http/mime_type"
101
109
 
102
110
  ActiveSupport.on_load(:action_view) do
103
111
  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 = 4
10
+ MAJOR = 5
9
11
  MINOR = 2
10
- TINY = 11
11
- PRE = "1"
12
+ TINY = 6
13
+ PRE = nil
12
14
 
13
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
14
16
  end
@@ -1,4 +1,6 @@
1
- require_relative 'gem_version'
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "gem_version"
2
4
 
3
5
  module ActionPack
4
6
  # Returns the version of the currently loaded ActionPack as a <tt>Gem::Version</tt>
data/lib/action_pack.rb CHANGED
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  #--
2
- # Copyright (c) 2004-2014 David Heinemeier Hansson
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 'action_pack/version'
26
+ require "action_pack/version"