actionpack 7.2.3 → 8.1.3

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.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +394 -119
  3. data/lib/abstract_controller/asset_paths.rb +4 -2
  4. data/lib/abstract_controller/base.rb +11 -5
  5. data/lib/abstract_controller/caching.rb +6 -3
  6. data/lib/abstract_controller/callbacks.rb +6 -0
  7. data/lib/abstract_controller/logger.rb +2 -1
  8. data/lib/abstract_controller/rendering.rb +0 -1
  9. data/lib/action_controller/api.rb +1 -0
  10. data/lib/action_controller/base.rb +3 -2
  11. data/lib/action_controller/caching.rb +1 -2
  12. data/lib/action_controller/form_builder.rb +4 -4
  13. data/lib/action_controller/log_subscriber.rb +22 -3
  14. data/lib/action_controller/metal/allow_browser.rb +12 -2
  15. data/lib/action_controller/metal/conditional_get.rb +30 -1
  16. data/lib/action_controller/metal/data_streaming.rb +5 -5
  17. data/lib/action_controller/metal/exceptions.rb +5 -0
  18. data/lib/action_controller/metal/flash.rb +1 -4
  19. data/lib/action_controller/metal/head.rb +3 -1
  20. data/lib/action_controller/metal/instrumentation.rb +1 -2
  21. data/lib/action_controller/metal/live.rb +65 -25
  22. data/lib/action_controller/metal/permissions_policy.rb +9 -0
  23. data/lib/action_controller/metal/rate_limiting.rb +39 -9
  24. data/lib/action_controller/metal/redirecting.rb +105 -13
  25. data/lib/action_controller/metal/renderers.rb +29 -9
  26. data/lib/action_controller/metal/rendering.rb +7 -1
  27. data/lib/action_controller/metal/request_forgery_protection.rb +18 -10
  28. data/lib/action_controller/metal/rescue.rb +9 -0
  29. data/lib/action_controller/metal/streaming.rb +5 -84
  30. data/lib/action_controller/metal/strong_parameters.rb +277 -89
  31. data/lib/action_controller/railtie.rb +33 -15
  32. data/lib/action_controller/structured_event_subscriber.rb +116 -0
  33. data/lib/action_controller/test_case.rb +12 -2
  34. data/lib/action_dispatch/http/cache.rb +138 -11
  35. data/lib/action_dispatch/http/content_security_policy.rb +14 -1
  36. data/lib/action_dispatch/http/filter_parameters.rb +5 -3
  37. data/lib/action_dispatch/http/mime_negotiation.rb +55 -1
  38. data/lib/action_dispatch/http/mime_types.rb +1 -0
  39. data/lib/action_dispatch/http/param_builder.rb +187 -0
  40. data/lib/action_dispatch/http/param_error.rb +26 -0
  41. data/lib/action_dispatch/http/parameters.rb +3 -3
  42. data/lib/action_dispatch/http/permissions_policy.rb +6 -0
  43. data/lib/action_dispatch/http/query_parser.rb +55 -0
  44. data/lib/action_dispatch/http/request.rb +70 -21
  45. data/lib/action_dispatch/http/response.rb +50 -16
  46. data/lib/action_dispatch/http/url.rb +110 -14
  47. data/lib/action_dispatch/journey/gtg/simulator.rb +33 -12
  48. data/lib/action_dispatch/journey/gtg/transition_table.rb +33 -41
  49. data/lib/action_dispatch/journey/nodes/node.rb +2 -1
  50. data/lib/action_dispatch/journey/parser.rb +99 -196
  51. data/lib/action_dispatch/journey/route.rb +45 -31
  52. data/lib/action_dispatch/journey/router/utils.rb +8 -14
  53. data/lib/action_dispatch/journey/router.rb +59 -81
  54. data/lib/action_dispatch/journey/routes.rb +7 -0
  55. data/lib/action_dispatch/journey/scanner.rb +44 -42
  56. data/lib/action_dispatch/journey/visitors.rb +55 -23
  57. data/lib/action_dispatch/journey/visualizer/fsm.js +4 -6
  58. data/lib/action_dispatch/log_subscriber.rb +7 -3
  59. data/lib/action_dispatch/middleware/cookies.rb +8 -4
  60. data/lib/action_dispatch/middleware/debug_exceptions.rb +24 -5
  61. data/lib/action_dispatch/middleware/debug_view.rb +11 -5
  62. data/lib/action_dispatch/middleware/exception_wrapper.rb +11 -11
  63. data/lib/action_dispatch/middleware/executor.rb +12 -2
  64. data/lib/action_dispatch/middleware/public_exceptions.rb +1 -5
  65. data/lib/action_dispatch/middleware/remote_ip.rb +11 -5
  66. data/lib/action_dispatch/middleware/request_id.rb +2 -1
  67. data/lib/action_dispatch/middleware/session/cache_store.rb +17 -0
  68. data/lib/action_dispatch/middleware/ssl.rb +13 -3
  69. data/lib/action_dispatch/middleware/templates/rescues/_copy_button.html.erb +1 -0
  70. data/lib/action_dispatch/middleware/templates/rescues/_source.html.erb +3 -5
  71. data/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb +9 -5
  72. data/lib/action_dispatch/middleware/templates/rescues/blocked_host.html.erb +1 -0
  73. data/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb +1 -0
  74. data/lib/action_dispatch/middleware/templates/rescues/invalid_statement.html.erb +4 -0
  75. data/lib/action_dispatch/middleware/templates/rescues/invalid_statement.text.erb +3 -0
  76. data/lib/action_dispatch/middleware/templates/rescues/layout.erb +50 -0
  77. data/lib/action_dispatch/middleware/templates/rescues/missing_exact_template.html.erb +1 -0
  78. data/lib/action_dispatch/middleware/templates/rescues/missing_template.html.erb +1 -0
  79. data/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb +1 -0
  80. data/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb +1 -0
  81. data/lib/action_dispatch/middleware/templates/rescues/unknown_action.html.erb +1 -0
  82. data/lib/action_dispatch/railtie.rb +21 -0
  83. data/lib/action_dispatch/request/session.rb +1 -0
  84. data/lib/action_dispatch/request/utils.rb +9 -3
  85. data/lib/action_dispatch/routing/inspector.rb +80 -57
  86. data/lib/action_dispatch/routing/mapper.rb +404 -223
  87. data/lib/action_dispatch/routing/polymorphic_routes.rb +2 -2
  88. data/lib/action_dispatch/routing/redirection.rb +10 -7
  89. data/lib/action_dispatch/routing/route_set.rb +21 -12
  90. data/lib/action_dispatch/routing/routes_proxy.rb +1 -0
  91. data/lib/action_dispatch/structured_event_subscriber.rb +20 -0
  92. data/lib/action_dispatch/system_test_case.rb +3 -3
  93. data/lib/action_dispatch/system_testing/browser.rb +12 -21
  94. data/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb +2 -2
  95. data/lib/action_dispatch/testing/assertions/response.rb +26 -2
  96. data/lib/action_dispatch/testing/assertions/routing.rb +27 -15
  97. data/lib/action_dispatch/testing/integration.rb +18 -7
  98. data/lib/action_dispatch.rb +14 -4
  99. data/lib/action_pack/gem_version.rb +2 -2
  100. metadata +18 -48
  101. data/lib/action_dispatch/journey/parser.y +0 -50
  102. data/lib/action_dispatch/journey/parser_extras.rb +0 -33
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionpack
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.2.3
4
+ version: 8.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -15,28 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 7.2.3
18
+ version: 8.1.3
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: 7.2.3
26
- - !ruby/object:Gem::Dependency
27
- name: cgi
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '0'
25
+ version: 8.1.3
40
26
  - !ruby/object:Gem::Dependency
41
27
  name: nokogiri
42
28
  requirement: !ruby/object:Gem::Requirement
@@ -51,20 +37,6 @@ dependencies:
51
37
  - - ">="
52
38
  - !ruby/object:Gem::Version
53
39
  version: 1.8.5
54
- - !ruby/object:Gem::Dependency
55
- name: racc
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0'
61
- type: :runtime
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: '0'
68
40
  - !ruby/object:Gem::Dependency
69
41
  name: rack
70
42
  requirement: !ruby/object:Gem::Requirement
@@ -72,9 +44,6 @@ dependencies:
72
44
  - - ">="
73
45
  - !ruby/object:Gem::Version
74
46
  version: 2.2.4
75
- - - "<"
76
- - !ruby/object:Gem::Version
77
- version: '3.3'
78
47
  type: :runtime
79
48
  prerelease: false
80
49
  version_requirements: !ruby/object:Gem::Requirement
@@ -82,9 +51,6 @@ dependencies:
82
51
  - - ">="
83
52
  - !ruby/object:Gem::Version
84
53
  version: 2.2.4
85
- - - "<"
86
- - !ruby/object:Gem::Version
87
- version: '3.3'
88
54
  - !ruby/object:Gem::Dependency
89
55
  name: rack-session
90
56
  requirement: !ruby/object:Gem::Requirement
@@ -161,28 +127,28 @@ dependencies:
161
127
  requirements:
162
128
  - - '='
163
129
  - !ruby/object:Gem::Version
164
- version: 7.2.3
130
+ version: 8.1.3
165
131
  type: :runtime
166
132
  prerelease: false
167
133
  version_requirements: !ruby/object:Gem::Requirement
168
134
  requirements:
169
135
  - - '='
170
136
  - !ruby/object:Gem::Version
171
- version: 7.2.3
137
+ version: 8.1.3
172
138
  - !ruby/object:Gem::Dependency
173
139
  name: activemodel
174
140
  requirement: !ruby/object:Gem::Requirement
175
141
  requirements:
176
142
  - - '='
177
143
  - !ruby/object:Gem::Version
178
- version: 7.2.3
144
+ version: 8.1.3
179
145
  type: :development
180
146
  prerelease: false
181
147
  version_requirements: !ruby/object:Gem::Requirement
182
148
  requirements:
183
149
  - - '='
184
150
  - !ruby/object:Gem::Version
185
- version: 7.2.3
151
+ version: 8.1.3
186
152
  description: Web apps on Rails. Simple, battle-tested conventions for building and
187
153
  testing MVC web applications. Works with any Rack-compatible server.
188
154
  email: david@loudthinking.com
@@ -252,6 +218,7 @@ files:
252
218
  - lib/action_controller/railtie.rb
253
219
  - lib/action_controller/railties/helpers.rb
254
220
  - lib/action_controller/renderer.rb
221
+ - lib/action_controller/structured_event_subscriber.rb
255
222
  - lib/action_controller/template_assertions.rb
256
223
  - lib/action_controller/test_case.rb
257
224
  - lib/action_dispatch.rb
@@ -266,8 +233,11 @@ files:
266
233
  - lib/action_dispatch/http/mime_negotiation.rb
267
234
  - lib/action_dispatch/http/mime_type.rb
268
235
  - lib/action_dispatch/http/mime_types.rb
236
+ - lib/action_dispatch/http/param_builder.rb
237
+ - lib/action_dispatch/http/param_error.rb
269
238
  - lib/action_dispatch/http/parameters.rb
270
239
  - lib/action_dispatch/http/permissions_policy.rb
240
+ - lib/action_dispatch/http/query_parser.rb
271
241
  - lib/action_dispatch/http/rack_cache.rb
272
242
  - lib/action_dispatch/http/request.rb
273
243
  - lib/action_dispatch/http/response.rb
@@ -281,8 +251,6 @@ files:
281
251
  - lib/action_dispatch/journey/nfa/dot.rb
282
252
  - lib/action_dispatch/journey/nodes/node.rb
283
253
  - lib/action_dispatch/journey/parser.rb
284
- - lib/action_dispatch/journey/parser.y
285
- - lib/action_dispatch/journey/parser_extras.rb
286
254
  - lib/action_dispatch/journey/path/pattern.rb
287
255
  - lib/action_dispatch/journey/route.rb
288
256
  - lib/action_dispatch/journey/router.rb
@@ -320,6 +288,7 @@ files:
320
288
  - lib/action_dispatch/middleware/static.rb
321
289
  - lib/action_dispatch/middleware/templates/rescues/_actions.html.erb
322
290
  - lib/action_dispatch/middleware/templates/rescues/_actions.text.erb
291
+ - lib/action_dispatch/middleware/templates/rescues/_copy_button.html.erb
323
292
  - lib/action_dispatch/middleware/templates/rescues/_message_and_suggestions.html.erb
324
293
  - lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
325
294
  - lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb
@@ -358,6 +327,7 @@ files:
358
327
  - lib/action_dispatch/routing/route_set.rb
359
328
  - lib/action_dispatch/routing/routes_proxy.rb
360
329
  - lib/action_dispatch/routing/url_for.rb
330
+ - lib/action_dispatch/structured_event_subscriber.rb
361
331
  - lib/action_dispatch/system_test_case.rb
362
332
  - lib/action_dispatch/system_testing/browser.rb
363
333
  - lib/action_dispatch/system_testing/driver.rb
@@ -382,10 +352,10 @@ licenses:
382
352
  - MIT
383
353
  metadata:
384
354
  bug_tracker_uri: https://github.com/rails/rails/issues
385
- changelog_uri: https://github.com/rails/rails/blob/v7.2.3/actionpack/CHANGELOG.md
386
- documentation_uri: https://api.rubyonrails.org/v7.2.3/
355
+ changelog_uri: https://github.com/rails/rails/blob/v8.1.3/actionpack/CHANGELOG.md
356
+ documentation_uri: https://api.rubyonrails.org/v8.1.3/
387
357
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
388
- source_code_uri: https://github.com/rails/rails/tree/v7.2.3/actionpack
358
+ source_code_uri: https://github.com/rails/rails/tree/v8.1.3/actionpack
389
359
  rubygems_mfa_required: 'true'
390
360
  rdoc_options: []
391
361
  require_paths:
@@ -394,7 +364,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
394
364
  requirements:
395
365
  - - ">="
396
366
  - !ruby/object:Gem::Version
397
- version: 3.1.0
367
+ version: 3.2.0
398
368
  required_rubygems_version: !ruby/object:Gem::Requirement
399
369
  requirements:
400
370
  - - ">="
@@ -402,7 +372,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
402
372
  version: '0'
403
373
  requirements:
404
374
  - none
405
- rubygems_version: 3.6.9
375
+ rubygems_version: 4.0.6
406
376
  specification_version: 4
407
377
  summary: Web-flow and rendering framework putting the VC in MVC (part of Rails).
408
378
  test_files: []
@@ -1,50 +0,0 @@
1
- class ActionDispatch::Journey::Parser
2
- options no_result_var
3
- token SLASH LITERAL SYMBOL LPAREN RPAREN DOT STAR OR
4
-
5
- rule
6
- expressions
7
- : expression expressions { Cat.new(val.first, val.last) }
8
- | expression { val.first }
9
- | or
10
- ;
11
- expression
12
- : terminal
13
- | group
14
- | star
15
- ;
16
- group
17
- : LPAREN expressions RPAREN { Group.new(val[1]) }
18
- ;
19
- or
20
- : expression OR expression { Or.new([val.first, val.last]) }
21
- | expression OR or { Or.new([val.first, val.last]) }
22
- ;
23
- star
24
- : STAR { Star.new(Symbol.new(val.last, Symbol::GREEDY_EXP)) }
25
- ;
26
- terminal
27
- : symbol
28
- | literal
29
- | slash
30
- | dot
31
- ;
32
- slash
33
- : SLASH { Slash.new(val.first) }
34
- ;
35
- symbol
36
- : SYMBOL { Symbol.new(val.first) }
37
- ;
38
- literal
39
- : LITERAL { Literal.new(val.first) }
40
- ;
41
- dot
42
- : DOT { Dot.new(val.first) }
43
- ;
44
-
45
- end
46
-
47
- ---- header
48
- # :stopdoc:
49
-
50
- require "action_dispatch/journey/parser_extras"
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # :markup: markdown
4
-
5
- require "action_dispatch/journey/scanner"
6
- require "action_dispatch/journey/nodes/node"
7
-
8
- module ActionDispatch
9
- # :stopdoc:
10
- module Journey
11
- class Parser < Racc::Parser
12
- include Journey::Nodes
13
-
14
- def self.parse(string)
15
- new.parse string
16
- end
17
-
18
- def initialize
19
- @scanner = Scanner.new
20
- end
21
-
22
- def parse(string)
23
- @scanner.scan_setup(string)
24
- do_parse
25
- end
26
-
27
- def next_token
28
- @scanner.next_token
29
- end
30
- end
31
- end
32
- # :startdoc:
33
- end