actionpack 7.1.3 → 7.2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of actionpack might be problematic. Click here for more details.

Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +82 -501
  3. data/lib/abstract_controller/asset_paths.rb +2 -0
  4. data/lib/abstract_controller/base.rb +102 -98
  5. data/lib/abstract_controller/caching/fragments.rb +50 -53
  6. data/lib/abstract_controller/caching.rb +2 -0
  7. data/lib/abstract_controller/callbacks.rb +66 -64
  8. data/lib/abstract_controller/collector.rb +6 -6
  9. data/lib/abstract_controller/deprecator.rb +2 -0
  10. data/lib/abstract_controller/error.rb +2 -0
  11. data/lib/abstract_controller/helpers.rb +70 -85
  12. data/lib/abstract_controller/logger.rb +2 -0
  13. data/lib/abstract_controller/railties/routes_helpers.rb +2 -0
  14. data/lib/abstract_controller/rendering.rb +13 -12
  15. data/lib/abstract_controller/translation.rb +15 -7
  16. data/lib/abstract_controller/url_for.rb +8 -6
  17. data/lib/abstract_controller.rb +2 -0
  18. data/lib/action_controller/api/api_rendering.rb +2 -0
  19. data/lib/action_controller/api.rb +74 -72
  20. data/lib/action_controller/base.rb +198 -126
  21. data/lib/action_controller/caching.rb +15 -12
  22. data/lib/action_controller/deprecator.rb +2 -0
  23. data/lib/action_controller/form_builder.rb +20 -17
  24. data/lib/action_controller/log_subscriber.rb +3 -1
  25. data/lib/action_controller/metal/allow_browser.rb +123 -0
  26. data/lib/action_controller/metal/basic_implicit_render.rb +2 -0
  27. data/lib/action_controller/metal/conditional_get.rb +188 -174
  28. data/lib/action_controller/metal/content_security_policy.rb +25 -24
  29. data/lib/action_controller/metal/cookies.rb +4 -2
  30. data/lib/action_controller/metal/data_streaming.rb +64 -55
  31. data/lib/action_controller/metal/default_headers.rb +5 -3
  32. data/lib/action_controller/metal/etag_with_flash.rb +3 -1
  33. data/lib/action_controller/metal/etag_with_template_digest.rb +17 -15
  34. data/lib/action_controller/metal/exceptions.rb +11 -9
  35. data/lib/action_controller/metal/flash.rb +12 -10
  36. data/lib/action_controller/metal/head.rb +12 -10
  37. data/lib/action_controller/metal/helpers.rb +63 -55
  38. data/lib/action_controller/metal/http_authentication.rb +210 -205
  39. data/lib/action_controller/metal/implicit_render.rb +17 -15
  40. data/lib/action_controller/metal/instrumentation.rb +15 -12
  41. data/lib/action_controller/metal/live.rb +113 -107
  42. data/lib/action_controller/metal/logging.rb +6 -4
  43. data/lib/action_controller/metal/mime_responds.rb +151 -142
  44. data/lib/action_controller/metal/parameter_encoding.rb +34 -32
  45. data/lib/action_controller/metal/params_wrapper.rb +57 -59
  46. data/lib/action_controller/metal/permissions_policy.rb +13 -12
  47. data/lib/action_controller/metal/rate_limiting.rb +62 -0
  48. data/lib/action_controller/metal/redirecting.rb +108 -82
  49. data/lib/action_controller/metal/renderers.rb +50 -49
  50. data/lib/action_controller/metal/rendering.rb +103 -75
  51. data/lib/action_controller/metal/request_forgery_protection.rb +162 -133
  52. data/lib/action_controller/metal/rescue.rb +11 -9
  53. data/lib/action_controller/metal/streaming.rb +138 -136
  54. data/lib/action_controller/metal/strong_parameters.rb +525 -480
  55. data/lib/action_controller/metal/testing.rb +2 -0
  56. data/lib/action_controller/metal/url_for.rb +17 -15
  57. data/lib/action_controller/metal.rb +86 -60
  58. data/lib/action_controller/railtie.rb +3 -0
  59. data/lib/action_controller/railties/helpers.rb +2 -0
  60. data/lib/action_controller/renderer.rb +42 -36
  61. data/lib/action_controller/template_assertions.rb +4 -2
  62. data/lib/action_controller/test_case.rb +146 -126
  63. data/lib/action_controller.rb +10 -3
  64. data/lib/action_dispatch/constants.rb +2 -0
  65. data/lib/action_dispatch/deprecator.rb +2 -0
  66. data/lib/action_dispatch/http/cache.rb +27 -26
  67. data/lib/action_dispatch/http/content_disposition.rb +2 -0
  68. data/lib/action_dispatch/http/content_security_policy.rb +44 -38
  69. data/lib/action_dispatch/http/filter_parameters.rb +18 -9
  70. data/lib/action_dispatch/http/filter_redirect.rb +22 -1
  71. data/lib/action_dispatch/http/headers.rb +22 -22
  72. data/lib/action_dispatch/http/mime_negotiation.rb +30 -41
  73. data/lib/action_dispatch/http/mime_type.rb +31 -24
  74. data/lib/action_dispatch/http/mime_types.rb +2 -0
  75. data/lib/action_dispatch/http/parameters.rb +11 -9
  76. data/lib/action_dispatch/http/permissions_policy.rb +20 -44
  77. data/lib/action_dispatch/http/rack_cache.rb +2 -0
  78. data/lib/action_dispatch/http/request.rb +94 -75
  79. data/lib/action_dispatch/http/response.rb +73 -61
  80. data/lib/action_dispatch/http/upload.rb +18 -16
  81. data/lib/action_dispatch/http/url.rb +75 -73
  82. data/lib/action_dispatch/journey/formatter.rb +13 -6
  83. data/lib/action_dispatch/journey/gtg/builder.rb +4 -3
  84. data/lib/action_dispatch/journey/gtg/simulator.rb +2 -0
  85. data/lib/action_dispatch/journey/gtg/transition_table.rb +10 -8
  86. data/lib/action_dispatch/journey/nfa/dot.rb +2 -0
  87. data/lib/action_dispatch/journey/nodes/node.rb +6 -5
  88. data/lib/action_dispatch/journey/parser.rb +4 -3
  89. data/lib/action_dispatch/journey/parser_extras.rb +2 -0
  90. data/lib/action_dispatch/journey/path/pattern.rb +4 -1
  91. data/lib/action_dispatch/journey/route.rb +9 -7
  92. data/lib/action_dispatch/journey/router/utils.rb +16 -15
  93. data/lib/action_dispatch/journey/router.rb +4 -2
  94. data/lib/action_dispatch/journey/routes.rb +4 -2
  95. data/lib/action_dispatch/journey/scanner.rb +4 -2
  96. data/lib/action_dispatch/journey/visitors.rb +2 -0
  97. data/lib/action_dispatch/journey.rb +2 -0
  98. data/lib/action_dispatch/log_subscriber.rb +2 -0
  99. data/lib/action_dispatch/middleware/actionable_exceptions.rb +2 -0
  100. data/lib/action_dispatch/middleware/assume_ssl.rb +8 -5
  101. data/lib/action_dispatch/middleware/callbacks.rb +3 -1
  102. data/lib/action_dispatch/middleware/cookies.rb +119 -104
  103. data/lib/action_dispatch/middleware/debug_exceptions.rb +13 -5
  104. data/lib/action_dispatch/middleware/debug_locks.rb +15 -13
  105. data/lib/action_dispatch/middleware/debug_view.rb +2 -0
  106. data/lib/action_dispatch/middleware/exception_wrapper.rb +6 -11
  107. data/lib/action_dispatch/middleware/executor.rb +8 -0
  108. data/lib/action_dispatch/middleware/flash.rb +63 -51
  109. data/lib/action_dispatch/middleware/host_authorization.rb +17 -15
  110. data/lib/action_dispatch/middleware/public_exceptions.rb +8 -6
  111. data/lib/action_dispatch/middleware/reloader.rb +5 -3
  112. data/lib/action_dispatch/middleware/remote_ip.rb +77 -72
  113. data/lib/action_dispatch/middleware/request_id.rb +14 -9
  114. data/lib/action_dispatch/middleware/server_timing.rb +4 -2
  115. data/lib/action_dispatch/middleware/session/abstract_store.rb +2 -0
  116. data/lib/action_dispatch/middleware/session/cache_store.rb +13 -8
  117. data/lib/action_dispatch/middleware/session/cookie_store.rb +27 -26
  118. data/lib/action_dispatch/middleware/session/mem_cache_store.rb +7 -3
  119. data/lib/action_dispatch/middleware/show_exceptions.rb +31 -21
  120. data/lib/action_dispatch/middleware/ssl.rb +43 -40
  121. data/lib/action_dispatch/middleware/stack.rb +11 -10
  122. data/lib/action_dispatch/middleware/static.rb +33 -31
  123. data/lib/action_dispatch/middleware/templates/rescues/_source.html.erb +1 -1
  124. data/lib/action_dispatch/middleware/templates/rescues/missing_exact_template.html.erb +1 -1
  125. data/lib/action_dispatch/middleware/templates/routes/_table.html.erb +1 -1
  126. data/lib/action_dispatch/railtie.rb +2 -4
  127. data/lib/action_dispatch/request/session.rb +23 -21
  128. data/lib/action_dispatch/request/utils.rb +2 -0
  129. data/lib/action_dispatch/routing/endpoint.rb +2 -0
  130. data/lib/action_dispatch/routing/inspector.rb +5 -3
  131. data/lib/action_dispatch/routing/mapper.rb +671 -636
  132. data/lib/action_dispatch/routing/polymorphic_routes.rb +69 -62
  133. data/lib/action_dispatch/routing/redirection.rb +37 -32
  134. data/lib/action_dispatch/routing/route_set.rb +59 -45
  135. data/lib/action_dispatch/routing/routes_proxy.rb +6 -4
  136. data/lib/action_dispatch/routing/url_for.rb +130 -125
  137. data/lib/action_dispatch/routing.rb +150 -148
  138. data/lib/action_dispatch/system_test_case.rb +91 -81
  139. data/lib/action_dispatch/system_testing/browser.rb +10 -3
  140. data/lib/action_dispatch/system_testing/driver.rb +3 -1
  141. data/lib/action_dispatch/system_testing/server.rb +2 -0
  142. data/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb +32 -21
  143. data/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb +2 -0
  144. data/lib/action_dispatch/testing/assertion_response.rb +8 -6
  145. data/lib/action_dispatch/testing/assertions/response.rb +26 -23
  146. data/lib/action_dispatch/testing/assertions/routing.rb +153 -84
  147. data/lib/action_dispatch/testing/assertions.rb +2 -0
  148. data/lib/action_dispatch/testing/integration.rb +223 -222
  149. data/lib/action_dispatch/testing/request_encoder.rb +2 -0
  150. data/lib/action_dispatch/testing/test_helpers/page_dump_helper.rb +35 -0
  151. data/lib/action_dispatch/testing/test_process.rb +12 -8
  152. data/lib/action_dispatch/testing/test_request.rb +3 -1
  153. data/lib/action_dispatch/testing/test_response.rb +27 -26
  154. data/lib/action_dispatch.rb +22 -28
  155. data/lib/action_pack/gem_version.rb +6 -4
  156. data/lib/action_pack/version.rb +3 -1
  157. data/lib/action_pack.rb +17 -16
  158. metadata +39 -16
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  require "action_dispatch/journey/gtg/transition_table"
4
6
 
5
7
  module ActionDispatch
@@ -66,9 +68,8 @@ module ActionDispatch
66
68
  when Nodes::Group
67
69
  true
68
70
  when Nodes::Star
69
- # the default star regex is /(.+)/ which is NOT nullable
70
- # but since different constraints can be provided we must
71
- # actually check if this is the case or not.
71
+ # the default star regex is /(.+)/ which is NOT nullable but since different
72
+ # constraints can be provided we must actually check if this is the case or not.
72
73
  node.regexp.match?("")
73
74
  when Nodes::Or
74
75
  node.children.any? { |c| nullable?(c) }
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  require "strscan"
4
6
 
5
7
  module ActionDispatch
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  require "action_dispatch/journey/nfa/dot"
4
6
 
5
7
  module ActionDispatch
@@ -55,8 +57,8 @@ module ActionDispatch
55
57
 
56
58
  t.each { |s, previous_start|
57
59
  if previous_start.nil?
58
- # In the simple case of a "default" param regex do this fast-path
59
- # and add all next states.
60
+ # In the simple case of a "default" param regex do this fast-path and add all
61
+ # next states.
60
62
  if token_matches_default_component && states = @stdparam_states[s]
61
63
  states.each { |re, v| next_states << [v, nil].freeze if !v.nil? }
62
64
  end
@@ -67,10 +69,10 @@ module ActionDispatch
67
69
  end
68
70
  end
69
71
 
70
- # For regexes that aren't the "default" style, they may potentially
71
- # not be terminated by the first "token" [./?], so we need to continue
72
- # to attempt to match this regexp as well as any successful paths that
73
- # continue out of it. both paths could be valid.
72
+ # For regexes that aren't the "default" style, they may potentially not be
73
+ # terminated by the first "token" [./?], so we need to continue to attempt to
74
+ # match this regexp as well as any successful paths that continue out of it.
75
+ # both paths could be valid.
74
76
  if states = @regexp_states[s]
75
77
  slice_start = if previous_start.nil?
76
78
  start_index
@@ -86,8 +88,8 @@ module ActionDispatch
86
88
  next_states << [v, nil].freeze if !v.nil? && re.match?(curr_slice)
87
89
  }
88
90
 
89
- # and regardless, we must continue accepting tokens and retrying this regexp.
90
- # we need to remember where we started as well so we can take bigger slices.
91
+ # and regardless, we must continue accepting tokens and retrying this regexp. we
92
+ # need to remember where we started as well so we can take bigger slices.
91
93
  next_states << [s, slice_start].freeze
92
94
  end
93
95
  }
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  module ActionDispatch
4
6
  module Journey # :nodoc:
5
7
  module NFA # :nodoc:
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  require "action_dispatch/journey/visitors"
4
6
 
5
7
  module ActionDispatch
@@ -21,9 +23,8 @@ module ActionDispatch
21
23
  end
22
24
 
23
25
  def requirements=(requirements)
24
- # inject any regexp requirements for `star` nodes so they can be
25
- # determined nullable, which requires knowing if the regex accepts an
26
- # empty string.
26
+ # inject any regexp requirements for `star` nodes so they can be determined
27
+ # nullable, which requires knowing if the regex accepts an empty string.
27
28
  (symbols + stars).each do |node|
28
29
  re = requirements[node.to_sym]
29
30
  node.regexp = re if re
@@ -51,8 +52,8 @@ module ActionDispatch
51
52
  stars << node
52
53
 
53
54
  if formatted != false
54
- # Add a constraint for wildcard route to make it non-greedy and
55
- # match the optional format part of the route by default.
55
+ # Add a constraint for wildcard route to make it non-greedy and match the
56
+ # optional format part of the route by default.
56
57
  wildcard_options[node.name.to_sym] ||= /.+?/m
57
58
  end
58
59
  end
@@ -1,8 +1,9 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.4.16
4
- # from Racc grammar file "".
5
- #
3
+ # This file is automatically generated by Racc 1.4.16 from
4
+ # Racc grammar file "".
5
+
6
+ # :markup: markdown
6
7
 
7
8
  require 'racc/parser.rb'
8
9
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  require "action_dispatch/journey/scanner"
4
6
  require "action_dispatch/journey/nodes/node"
5
7
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  module ActionDispatch
4
6
  module Journey # :nodoc:
5
7
  module Path # :nodoc:
@@ -32,7 +34,8 @@ module ActionDispatch
32
34
  end
33
35
 
34
36
  def requirements_anchored?
35
- # each required param must not be surrounded by a literal, otherwise it isn't simple to chunk-match the url piecemeal
37
+ # each required param must not be surrounded by a literal, otherwise it isn't
38
+ # simple to chunk-match the url piecemeal
36
39
  terminals = ast.terminals
37
40
 
38
41
  terminals.each_with_index { |s, index|
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  module ActionDispatch
4
6
  # :stopdoc:
5
7
  module Journey
@@ -52,7 +54,7 @@ module ActionDispatch
52
54
 
53
55
  ##
54
56
  # +path+ is a path constraint.
55
- # +constraints+ is a hash of constraints to be applied to this route.
57
+ # `constraints` is a hash of constraints to be applied to this route.
56
58
  def initialize(name:, app: nil, path:, constraints: {}, required_defaults: [], defaults: {}, request_method_match: nil, precedence: 0, scope_options: {}, internal: false, source_location: nil)
57
59
  @name = name
58
60
  @app = app
@@ -82,14 +84,14 @@ module ActionDispatch
82
84
  nil
83
85
  end
84
86
 
85
- # Needed for `bin/rails routes`. Picks up succinctly defined requirements
86
- # for a route, for example route
87
+ # Needed for `bin/rails routes`. Picks up succinctly defined requirements for a
88
+ # route, for example route
87
89
  #
88
- # get 'photo/:id', :controller => 'photos', :action => 'show',
89
- # :id => /[A-Z]\d{5}/
90
+ # get 'photo/:id', :controller => 'photos', :action => 'show',
91
+ # :id => /[A-Z]\d{5}/
90
92
  #
91
- # will have {:controller=>"photos", :action=>"show", :id=>/[A-Z]\d{5}/}
92
- # as requirements.
93
+ # will have {:controller=>"photos", :action=>"show", :[id=>/](A-Z){5}/} as
94
+ # requirements.
93
95
  def requirements
94
96
  @defaults.merge(path.requirements).delete_if { |_, v|
95
97
  /.+?/m == v
@@ -1,19 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  module ActionDispatch
4
6
  module Journey # :nodoc:
5
7
  class Router # :nodoc:
6
8
  class Utils # :nodoc:
7
9
  # Normalizes URI path.
8
10
  #
9
- # Strips off trailing slash and ensures there is a leading slash.
10
- # Also converts downcase URL encoded string to uppercase.
11
+ # Strips off trailing slash and ensures there is a leading slash. Also converts
12
+ # downcase URL encoded string to uppercase.
11
13
  #
12
- # normalize_path("/foo") # => "/foo"
13
- # normalize_path("/foo/") # => "/foo"
14
- # normalize_path("foo") # => "/foo"
15
- # normalize_path("") # => "/"
16
- # normalize_path("/%ab") # => "/%AB"
14
+ # normalize_path("/foo") # => "/foo"
15
+ # normalize_path("/foo/") # => "/foo"
16
+ # normalize_path("foo") # => "/foo"
17
+ # normalize_path("") # => "/"
18
+ # normalize_path("/%ab") # => "/%AB"
17
19
  def self.normalize_path(path)
18
20
  path ||= ""
19
21
  encoding = path.encoding
@@ -28,8 +30,7 @@ module ActionDispatch
28
30
  path.force_encoding(encoding)
29
31
  end
30
32
 
31
- # URI path and fragment escaping
32
- # https://tools.ietf.org/html/rfc3986
33
+ # URI path and fragment escaping https://tools.ietf.org/html/rfc3986
33
34
  class UriEncoder # :nodoc:
34
35
  ENCODE = "%%%02X"
35
36
  US_ASCII = Encoding::US_ASCII
@@ -42,11 +43,11 @@ module ActionDispatch
42
43
  UNRESERVED = "#{ALPHA}#{DIGIT}\\-\\._~"
43
44
  SUB_DELIMS = "!\\$&'\\(\\)\\*\\+,;="
44
45
 
45
- ESCAPED = /%[a-zA-Z0-9]{2}/.freeze
46
+ ESCAPED = /%[a-zA-Z0-9]{2}/
46
47
 
47
- FRAGMENT = /[^#{UNRESERVED}#{SUB_DELIMS}:@\/?]/.freeze
48
- SEGMENT = /[^#{UNRESERVED}#{SUB_DELIMS}:@]/.freeze
49
- PATH = /[^#{UNRESERVED}#{SUB_DELIMS}:@\/]/.freeze
48
+ FRAGMENT = /[^#{UNRESERVED}#{SUB_DELIMS}:@\/?]/
49
+ SEGMENT = /[^#{UNRESERVED}#{SUB_DELIMS}:@]/
50
+ PATH = /[^#{UNRESERVED}#{SUB_DELIMS}:@\/]/
50
51
 
51
52
  def escape_fragment(fragment)
52
53
  escape(fragment, FRAGMENT)
@@ -93,8 +94,8 @@ module ActionDispatch
93
94
 
94
95
  # Replaces any escaped sequences with their unescaped representations.
95
96
  #
96
- # uri = "/topics?title=Ruby%20on%20Rails"
97
- # unescape_uri(uri) #=> "/topics?title=Ruby on Rails"
97
+ # uri = "/topics?title=Ruby%20on%20Rails"
98
+ # unescape_uri(uri) #=> "/topics?title=Ruby on Rails"
98
99
  def self.unescape_uri(uri)
99
100
  ENCODER.unescape_uri(uri)
100
101
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  require "action_dispatch/journey/router/utils"
4
6
  require "action_dispatch/journey/routes"
5
7
  require "action_dispatch/journey/formatter"
@@ -22,8 +24,8 @@ module ActionDispatch
22
24
  end
23
25
 
24
26
  def eager_load!
25
- # Eagerly trigger the simulator's initialization so
26
- # it doesn't happen during a request cycle.
27
+ # Eagerly trigger the simulator's initialization so it doesn't happen during a
28
+ # request cycle.
27
29
  simulator
28
30
  nil
29
31
  end
@@ -1,9 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  module ActionDispatch
4
6
  module Journey # :nodoc:
5
- # The Routing table. Contains all routes for a system. Routes can be
6
- # added to the table by calling Routes#add_route.
7
+ # The Routing table. Contains all routes for a system. Routes can be added to
8
+ # the table by calling Routes#add_route.
7
9
  class Routes # :nodoc:
8
10
  include Enumerable
9
11
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  require "strscan"
4
6
 
5
7
  module ActionDispatch
@@ -33,8 +35,8 @@ module ActionDispatch
33
35
  end
34
36
 
35
37
  private
36
- # takes advantage of String @- deduping capabilities in Ruby 2.5 upwards
37
- # see: https://bugs.ruby-lang.org/issues/13077
38
+ # takes advantage of String @- deduping capabilities in Ruby 2.5 upwards see:
39
+ # https://bugs.ruby-lang.org/issues/13077
38
40
  def dedup_scan(regex)
39
41
  r = @ss.scan(regex)
40
42
  r ? -r : nil
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  module ActionDispatch
4
6
  # :stopdoc:
5
7
  module Journey
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  require "action_dispatch/journey/router"
4
6
  require "action_dispatch/journey/gtg/builder"
5
7
  require "action_dispatch/journey/gtg/simulator"
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  module ActionDispatch
4
6
  class LogSubscriber < ActiveSupport::LogSubscriber
5
7
  def redirect(event)
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  require "uri"
4
6
  require "active_support/actionable_error"
5
7
 
@@ -1,12 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  module ActionDispatch
4
- # = Action Dispatch \AssumeSSL
6
+ # # Action Dispatch AssumeSSL
5
7
  #
6
- # When proxying through a load balancer that terminates SSL, the forwarded request will appear
7
- # as though it's HTTP instead of HTTPS to the application. This makes redirects and cookie
8
- # security target HTTP instead of HTTPS. This middleware makes the server assume that the
9
- # proxy already terminated SSL, and that the request really is HTTPS.
8
+ # When proxying through a load balancer that terminates SSL, the forwarded
9
+ # request will appear as though it's HTTP instead of HTTPS to the application.
10
+ # This makes redirects and cookie security target HTTP instead of HTTPS. This
11
+ # middleware makes the server assume that the proxy already terminated SSL, and
12
+ # that the request really is HTTPS.
10
13
  class AssumeSSL
11
14
  def initialize(app)
12
15
  @app = app
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :markup: markdown
4
+
3
5
  module ActionDispatch
4
- # = Action Dispatch \Callbacks
6
+ # # Action Dispatch Callbacks
5
7
  #
6
8
  # Provides callbacks to be executed before and after dispatching the request.
7
9
  class Callbacks