actionpack 8.0.2 → 8.1.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +252 -137
- data/README.rdoc +1 -1
- data/lib/abstract_controller/asset_paths.rb +4 -2
- data/lib/abstract_controller/base.rb +11 -14
- data/lib/abstract_controller/caching.rb +6 -3
- data/lib/abstract_controller/collector.rb +1 -1
- data/lib/abstract_controller/logger.rb +2 -1
- data/lib/action_controller/base.rb +1 -1
- data/lib/action_controller/caching.rb +1 -2
- data/lib/action_controller/form_builder.rb +1 -1
- data/lib/action_controller/log_subscriber.rb +7 -0
- data/lib/action_controller/metal/allow_browser.rb +1 -1
- data/lib/action_controller/metal/conditional_get.rb +25 -0
- data/lib/action_controller/metal/data_streaming.rb +1 -3
- data/lib/action_controller/metal/exceptions.rb +5 -0
- data/lib/action_controller/metal/flash.rb +1 -4
- data/lib/action_controller/metal/head.rb +3 -1
- data/lib/action_controller/metal/live.rb +0 -6
- data/lib/action_controller/metal/permissions_policy.rb +9 -0
- data/lib/action_controller/metal/rate_limiting.rb +22 -7
- data/lib/action_controller/metal/redirecting.rb +63 -7
- data/lib/action_controller/metal/renderers.rb +27 -6
- data/lib/action_controller/metal/rendering.rb +8 -2
- data/lib/action_controller/metal/request_forgery_protection.rb +18 -10
- data/lib/action_controller/metal/rescue.rb +9 -0
- data/lib/action_controller/railtie.rb +2 -6
- data/lib/action_controller/renderer.rb +0 -1
- data/lib/action_dispatch/constants.rb +6 -0
- data/lib/action_dispatch/http/cache.rb +111 -1
- data/lib/action_dispatch/http/content_security_policy.rb +13 -1
- data/lib/action_dispatch/http/filter_parameters.rb +5 -3
- data/lib/action_dispatch/http/mime_negotiation.rb +8 -3
- data/lib/action_dispatch/http/mime_types.rb +1 -0
- data/lib/action_dispatch/http/param_builder.rb +28 -27
- data/lib/action_dispatch/http/parameters.rb +3 -3
- data/lib/action_dispatch/http/permissions_policy.rb +4 -0
- data/lib/action_dispatch/http/query_parser.rb +12 -10
- data/lib/action_dispatch/http/request.rb +10 -5
- data/lib/action_dispatch/http/response.rb +65 -17
- data/lib/action_dispatch/http/url.rb +101 -5
- data/lib/action_dispatch/journey/gtg/simulator.rb +33 -12
- data/lib/action_dispatch/journey/gtg/transition_table.rb +29 -39
- data/lib/action_dispatch/journey/nodes/node.rb +2 -1
- data/lib/action_dispatch/journey/route.rb +45 -31
- data/lib/action_dispatch/journey/router/utils.rb +8 -14
- data/lib/action_dispatch/journey/router.rb +59 -81
- data/lib/action_dispatch/journey/routes.rb +7 -0
- data/lib/action_dispatch/journey/visitors.rb +55 -23
- data/lib/action_dispatch/journey/visualizer/fsm.js +4 -6
- data/lib/action_dispatch/middleware/cookies.rb +4 -2
- data/lib/action_dispatch/middleware/debug_exceptions.rb +10 -2
- data/lib/action_dispatch/middleware/debug_view.rb +11 -0
- data/lib/action_dispatch/middleware/exception_wrapper.rb +14 -8
- data/lib/action_dispatch/middleware/executor.rb +12 -2
- data/lib/action_dispatch/middleware/public_exceptions.rb +6 -6
- data/lib/action_dispatch/middleware/session/cache_store.rb +17 -0
- data/lib/action_dispatch/middleware/templates/rescues/_copy_button.html.erb +1 -0
- data/lib/action_dispatch/middleware/templates/rescues/_source.html.erb +3 -2
- data/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb +9 -5
- data/lib/action_dispatch/middleware/templates/rescues/blocked_host.html.erb +1 -0
- data/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb +1 -0
- data/lib/action_dispatch/middleware/templates/rescues/invalid_statement.html.erb +1 -0
- data/lib/action_dispatch/middleware/templates/rescues/layout.erb +50 -0
- data/lib/action_dispatch/middleware/templates/rescues/missing_exact_template.html.erb +1 -0
- data/lib/action_dispatch/middleware/templates/rescues/missing_template.html.erb +1 -0
- data/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb +1 -0
- data/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb +1 -0
- data/lib/action_dispatch/middleware/templates/rescues/unknown_action.html.erb +1 -0
- data/lib/action_dispatch/railtie.rb +10 -2
- data/lib/action_dispatch/routing/inspector.rb +4 -1
- data/lib/action_dispatch/routing/mapper.rb +323 -173
- data/lib/action_dispatch/routing/route_set.rb +3 -6
- data/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb +2 -2
- data/lib/action_dispatch/testing/assertion_response.rb +1 -1
- data/lib/action_dispatch/testing/assertions/response.rb +14 -0
- data/lib/action_dispatch/testing/assertions/routing.rb +11 -3
- data/lib/action_pack/gem_version.rb +3 -3
- metadata +13 -12
@@ -29,7 +29,7 @@ module ActionDispatch
|
|
29
29
|
def from_requirements(requirements)
|
30
30
|
routes.find { |route| route.requirements == requirements }
|
31
31
|
end
|
32
|
-
# :
|
32
|
+
# :enddoc:
|
33
33
|
|
34
34
|
# Since the router holds references to many parts of the system like engines,
|
35
35
|
# controllers and the application itself, inspecting the route set can actually
|
@@ -59,8 +59,6 @@ module ActionDispatch
|
|
59
59
|
private
|
60
60
|
def controller(req)
|
61
61
|
req.controller_class
|
62
|
-
rescue NameError => e
|
63
|
-
raise ActionController::RoutingError, e.message, e.backtrace
|
64
62
|
end
|
65
63
|
|
66
64
|
def dispatch(controller, action, req, res)
|
@@ -659,14 +657,14 @@ module ActionDispatch
|
|
659
657
|
if route.segment_keys.include?(:controller)
|
660
658
|
ActionDispatch.deprecator.warn(<<-MSG.squish)
|
661
659
|
Using a dynamic :controller segment in a route is deprecated and
|
662
|
-
will be removed in Rails
|
660
|
+
will be removed in Rails 9.0.
|
663
661
|
MSG
|
664
662
|
end
|
665
663
|
|
666
664
|
if route.segment_keys.include?(:action)
|
667
665
|
ActionDispatch.deprecator.warn(<<-MSG.squish)
|
668
666
|
Using a dynamic :action segment in a route is deprecated and
|
669
|
-
will be removed in Rails
|
667
|
+
will be removed in Rails 9.0.
|
670
668
|
MSG
|
671
669
|
end
|
672
670
|
|
@@ -953,6 +951,5 @@ module ActionDispatch
|
|
953
951
|
end
|
954
952
|
end
|
955
953
|
end
|
956
|
-
# :startdoc:
|
957
954
|
end
|
958
955
|
end
|
@@ -132,8 +132,8 @@ module ActionDispatch
|
|
132
132
|
end
|
133
133
|
|
134
134
|
def display_image(html:, screenshot_output:)
|
135
|
-
message = +"[Screenshot Image]: #{image_path}\n"
|
136
|
-
message << +"[Screenshot HTML]: #{html_path}\n" if html
|
135
|
+
message = +"[Screenshot Image]: #{image_path} \n"
|
136
|
+
message << +"[Screenshot HTML]: #{html_path} \n" if html
|
137
137
|
|
138
138
|
case screenshot_output || output_type
|
139
139
|
when "artifact"
|
@@ -71,6 +71,20 @@ module ActionDispatch
|
|
71
71
|
assert_operator redirect_expected, :===, redirect_is, message
|
72
72
|
end
|
73
73
|
|
74
|
+
# Asserts that the given +text+ is present somewhere in the response body.
|
75
|
+
#
|
76
|
+
# assert_in_body fixture(:name).description
|
77
|
+
def assert_in_body(text)
|
78
|
+
assert_match(/#{Regexp.escape(text)}/, @response.body)
|
79
|
+
end
|
80
|
+
|
81
|
+
# Asserts that the given +text+ is not present anywhere in the response body.
|
82
|
+
#
|
83
|
+
# assert_not_in_body fixture(:name).description
|
84
|
+
def assert_not_in_body(text)
|
85
|
+
assert_no_match(/#{Regexp.escape(text)}/, @response.body)
|
86
|
+
end
|
87
|
+
|
74
88
|
private
|
75
89
|
# Proxy to to_param if the object will respond to it.
|
76
90
|
def parameterize(value)
|
@@ -25,7 +25,7 @@ module ActionDispatch
|
|
25
25
|
old_integration_session = nil
|
26
26
|
|
27
27
|
setup do
|
28
|
-
old_routes = app.routes
|
28
|
+
old_routes = initialize_lazy_routes(app.routes)
|
29
29
|
old_routes_call_method = old_routes.method(:call)
|
30
30
|
old_integration_session = integration_session
|
31
31
|
create_routes(&block)
|
@@ -38,7 +38,7 @@ module ActionDispatch
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def with_routing(&block)
|
41
|
-
old_routes = app.routes
|
41
|
+
old_routes = initialize_lazy_routes(app.routes)
|
42
42
|
old_routes_call_method = old_routes.method(:call)
|
43
43
|
old_integration_session = integration_session
|
44
44
|
create_routes(&block)
|
@@ -47,6 +47,14 @@ module ActionDispatch
|
|
47
47
|
end
|
48
48
|
|
49
49
|
private
|
50
|
+
def initialize_lazy_routes(routes)
|
51
|
+
if defined?(Rails::Engine::LazyRouteSet) && routes.is_a?(Rails::Engine::LazyRouteSet)
|
52
|
+
routes.tap(&:routes)
|
53
|
+
else
|
54
|
+
routes
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
50
58
|
def create_routes
|
51
59
|
app = self.app
|
52
60
|
routes = ActionDispatch::Routing::RouteSet.new
|
@@ -340,7 +348,7 @@ module ActionDispatch
|
|
340
348
|
def fail_on(exception_class, message)
|
341
349
|
yield
|
342
350
|
rescue exception_class => e
|
343
|
-
|
351
|
+
flunk(message || e.message)
|
344
352
|
end
|
345
353
|
end
|
346
354
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: actionpack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.0.
|
4
|
+
version: 8.1.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: activesupport
|
@@ -15,14 +15,14 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - '='
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 8.0.
|
18
|
+
version: 8.1.0.beta1
|
19
19
|
type: :runtime
|
20
20
|
prerelease: false
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - '='
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: 8.0.
|
25
|
+
version: 8.1.0.beta1
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: nokogiri
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
@@ -127,28 +127,28 @@ dependencies:
|
|
127
127
|
requirements:
|
128
128
|
- - '='
|
129
129
|
- !ruby/object:Gem::Version
|
130
|
-
version: 8.0.
|
130
|
+
version: 8.1.0.beta1
|
131
131
|
type: :runtime
|
132
132
|
prerelease: false
|
133
133
|
version_requirements: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
135
|
- - '='
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: 8.0.
|
137
|
+
version: 8.1.0.beta1
|
138
138
|
- !ruby/object:Gem::Dependency
|
139
139
|
name: activemodel
|
140
140
|
requirement: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - '='
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: 8.0.
|
144
|
+
version: 8.1.0.beta1
|
145
145
|
type: :development
|
146
146
|
prerelease: false
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
149
|
- - '='
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version: 8.0.
|
151
|
+
version: 8.1.0.beta1
|
152
152
|
description: Web apps on Rails. Simple, battle-tested conventions for building and
|
153
153
|
testing MVC web applications. Works with any Rack-compatible server.
|
154
154
|
email: david@loudthinking.com
|
@@ -287,6 +287,7 @@ files:
|
|
287
287
|
- lib/action_dispatch/middleware/static.rb
|
288
288
|
- lib/action_dispatch/middleware/templates/rescues/_actions.html.erb
|
289
289
|
- lib/action_dispatch/middleware/templates/rescues/_actions.text.erb
|
290
|
+
- lib/action_dispatch/middleware/templates/rescues/_copy_button.html.erb
|
290
291
|
- lib/action_dispatch/middleware/templates/rescues/_message_and_suggestions.html.erb
|
291
292
|
- lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
|
292
293
|
- lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb
|
@@ -349,10 +350,10 @@ licenses:
|
|
349
350
|
- MIT
|
350
351
|
metadata:
|
351
352
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
352
|
-
changelog_uri: https://github.com/rails/rails/blob/v8.0.
|
353
|
-
documentation_uri: https://api.rubyonrails.org/v8.0.
|
353
|
+
changelog_uri: https://github.com/rails/rails/blob/v8.1.0.beta1/actionpack/CHANGELOG.md
|
354
|
+
documentation_uri: https://api.rubyonrails.org/v8.1.0.beta1/
|
354
355
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
355
|
-
source_code_uri: https://github.com/rails/rails/tree/v8.0.
|
356
|
+
source_code_uri: https://github.com/rails/rails/tree/v8.1.0.beta1/actionpack
|
356
357
|
rubygems_mfa_required: 'true'
|
357
358
|
rdoc_options: []
|
358
359
|
require_paths:
|
@@ -369,7 +370,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
369
370
|
version: '0'
|
370
371
|
requirements:
|
371
372
|
- none
|
372
|
-
rubygems_version: 3.6.
|
373
|
+
rubygems_version: 3.6.9
|
373
374
|
specification_version: 4
|
374
375
|
summary: Web-flow and rendering framework putting the VC in MVC (part of Rails).
|
375
376
|
test_files: []
|