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
@@ -38,6 +38,22 @@
|
|
38
38
|
padding: 0.5em 1.5em;
|
39
39
|
}
|
40
40
|
|
41
|
+
header button {
|
42
|
+
appearance: none;
|
43
|
+
background-color: hsl(0 0% 0% / 0.2);
|
44
|
+
border: 0;
|
45
|
+
border-radius: 14px;
|
46
|
+
color: white;
|
47
|
+
float: right;
|
48
|
+
font-weight: 500;
|
49
|
+
height: 28px;
|
50
|
+
padding-inline: 14px;
|
51
|
+
margin: 0.35em 0;
|
52
|
+
}
|
53
|
+
header button:active {
|
54
|
+
background-color: hsl(0 0% 0% / 0.25);
|
55
|
+
}
|
56
|
+
|
41
57
|
h1 {
|
42
58
|
overflow-wrap: break-word;
|
43
59
|
margin: 0.2em 0;
|
@@ -54,6 +70,30 @@
|
|
54
70
|
font-size: 11px;
|
55
71
|
}
|
56
72
|
|
73
|
+
.trace-container {
|
74
|
+
margin-top: 10px;
|
75
|
+
}
|
76
|
+
|
77
|
+
code.traces .trace {
|
78
|
+
display: flex;
|
79
|
+
align-items: center;
|
80
|
+
gap: 2px;
|
81
|
+
}
|
82
|
+
|
83
|
+
.edit-icon {
|
84
|
+
width: 16px;
|
85
|
+
height: 16px;
|
86
|
+
display: flex;
|
87
|
+
font-size: 13px;
|
88
|
+
align-items: center;
|
89
|
+
justify-content: center;
|
90
|
+
text-decoration: none;
|
91
|
+
}
|
92
|
+
|
93
|
+
.edit-icon:hover {
|
94
|
+
scale: 1.05;
|
95
|
+
}
|
96
|
+
|
57
97
|
.response-heading, .request-heading {
|
58
98
|
margin-top: 30px;
|
59
99
|
}
|
@@ -274,11 +314,21 @@
|
|
274
314
|
var toggleEnvDump = function() {
|
275
315
|
return toggle('env_dump');
|
276
316
|
}
|
317
|
+
var copyAsText = function() {
|
318
|
+
const text = document.getElementById("exception-message-for-copy").textContent;
|
319
|
+
|
320
|
+
navigator.clipboard.writeText(text).then(() => {
|
321
|
+
const beforeText = this.innerText;
|
322
|
+
this.innerText = "Copied!"
|
323
|
+
setTimeout(() => this.innerText = beforeText, 1000)
|
324
|
+
})
|
325
|
+
}
|
277
326
|
</script>
|
278
327
|
</head>
|
279
328
|
<body>
|
280
329
|
|
281
330
|
<%= yield %>
|
331
|
+
<script type="text/plain" id="exception-message-for-copy"><%= raw @exception_message_for_copy %></script>
|
282
332
|
|
283
333
|
</body>
|
284
334
|
</html>
|
@@ -55,8 +55,16 @@ module ActionDispatch
|
|
55
55
|
ActionDispatch::Http::URL.secure_protocol = app.config.force_ssl
|
56
56
|
ActionDispatch::Http::URL.tld_length = app.config.action_dispatch.tld_length
|
57
57
|
|
58
|
-
|
59
|
-
|
58
|
+
unless app.config.action_dispatch.domain_extractor.nil?
|
59
|
+
ActionDispatch::Http::URL.domain_extractor = app.config.action_dispatch.domain_extractor
|
60
|
+
end
|
61
|
+
|
62
|
+
unless app.config.action_dispatch.ignore_leading_brackets.nil?
|
63
|
+
ActionDispatch::ParamBuilder.ignore_leading_brackets = app.config.action_dispatch.ignore_leading_brackets
|
64
|
+
end
|
65
|
+
unless app.config.action_dispatch.strict_query_string_separator.nil?
|
66
|
+
ActionDispatch::QueryParser.strict_query_string_separator = app.config.action_dispatch.strict_query_string_separator
|
67
|
+
end
|
60
68
|
|
61
69
|
ActiveSupport.on_load(:action_dispatch_request) do
|
62
70
|
self.ignore_accept_header = app.config.action_dispatch.ignore_accept_header
|
@@ -89,7 +89,10 @@ module ActionDispatch
|
|
89
89
|
|
90
90
|
@engines.each do |name, engine_routes|
|
91
91
|
formatter.section_title "Routes for #{name}"
|
92
|
-
|
92
|
+
if engine_routes.any?
|
93
|
+
formatter.header engine_routes
|
94
|
+
formatter.section engine_routes
|
95
|
+
end
|
93
96
|
end
|
94
97
|
|
95
98
|
formatter.result
|