actionpack 5.2.3 → 5.2.4.rc1

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.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fdbc11b76565d6d325a51b67c7a598b0a70c33e3e26c849dc57733e3fa7c0833
4
- data.tar.gz: 3afcd1526eb36e16fd199bb242fb232ddc3c01125e0d1306c94d31b315e93039
3
+ metadata.gz: 3679931508ff00406357c690c6bc03d08966109a5af4ea64042e0186b0772f96
4
+ data.tar.gz: e8da8f7149e84a388350f037eda5cb7729b8edeb778195be79e7f1273d2cc0a6
5
5
  SHA512:
6
- metadata.gz: 3122260924160e941c750fba0e3a671b2b2f40723c9c6766fae0f3987ac9521332d3a4128959fa61b993d72bd0539b7925ebb785b50d9b9811514897a2d5bf9e
7
- data.tar.gz: 4be02fcd7f87d2b725ba823274bc2c40eb367a2a26d7b1b53da8e4df699eae389fec796ff5164c7cb721426fa6cdf8f8b5ae5b6d74a712e5631e5e1ded283717
6
+ metadata.gz: 20695595eef6511baae42535270e30053369304a6629e521afea29f9758eae2b7e7f018e8b263055ba61a88c4a8e543ed1dab320449982c8ff1314b3ae27dcbd
7
+ data.tar.gz: 337e059cb93403ba173424a8516cc6c24b393a2cb602e6c8f71cd0db37d6aa7ec8b9a06cd2eb21874eff968adfd0db1dde5e6676783783a3399834ce610fcf98
@@ -1,10 +1,15 @@
1
+ ## Rails 5.2.4.rc1 (November 22, 2019) ##
2
+
3
+ * No changes.
4
+
5
+
1
6
  ## Rails 5.2.3 (March 27, 2019) ##
2
7
 
3
- * Allow using combine the Cache Control `public` and `no-cache` headers.
8
+ * Allow using `public` and `no-cache` together in the the Cache Control header.
4
9
 
5
- Before this change, even if `public` was specified for Cache Control header,
6
- it was excluded when `no-cache` was included. This fixed to keep `public`
7
- header as is.
10
+ Before this change, even if `public` was specified in the Cache Control header,
11
+ it was excluded when `no-cache` was included. This change preserves the
12
+ `public` value as is.
8
13
 
9
14
  Fixes #34780.
10
15
 
@@ -186,6 +191,34 @@
186
191
 
187
192
  * Matches behavior of `Hash#each` in `ActionController::Parameters#each`.
188
193
 
194
+ Rails 5.0 introduced a bug when looping through controller params using `each`. Only the keys of params hash were passed to the block, e.g.
195
+
196
+ # Parameters: {"param"=>"1", "param_two"=>"2"}
197
+ def index
198
+ params.each do |name|
199
+ puts name
200
+ end
201
+ end
202
+
203
+ # Prints
204
+ # param
205
+ # param_two
206
+
207
+ In Rails 5.2 the bug has been fixed and name will be an array (which was the behavior for all versions prior to 5.0), instead of a string.
208
+
209
+ To fix the code above simply change as per example below:
210
+
211
+ # Parameters: {"param"=>"1", "param_two"=>"2"}
212
+ def index
213
+ params.each do |name, value|
214
+ puts name
215
+ end
216
+ end
217
+
218
+ # Prints
219
+ # param
220
+ # param_two
221
+
189
222
  *Dominic Cleal*
190
223
 
191
224
  * Add `Referrer-Policy` header to default headers set.
@@ -26,10 +26,10 @@ module ActionController
26
26
  end
27
27
  end
28
28
 
29
- def build(action, app = Proc.new)
29
+ def build(action, app = nil, &block)
30
30
  action = action.to_s
31
31
 
32
- middlewares.reverse.inject(app) do |a, middleware|
32
+ middlewares.reverse.inject(app || block) do |a, middleware|
33
33
  middleware.valid?(action) ? middleware.build(a) : a
34
34
  end
35
35
  end
@@ -93,7 +93,7 @@ module ActionController
93
93
  end
94
94
 
95
95
  def model
96
- super || synchronize { super || self.model = _default_wrap_model }
96
+ super || self.model = _default_wrap_model
97
97
  end
98
98
 
99
99
  def include
@@ -115,7 +115,7 @@ module ActionController
115
115
 
116
116
  if m.respond_to?(:nested_attributes_options) && m.nested_attributes_options.keys.any?
117
117
  self.include += m.nested_attributes_options.keys.map do |key|
118
- key.to_s.concat("_attributes")
118
+ key.to_s.dup.concat("_attributes")
119
119
  end
120
120
  end
121
121
 
@@ -460,6 +460,7 @@ module ActionController
460
460
  def process(action, method: "GET", params: nil, session: nil, body: nil, flash: {}, format: nil, xhr: false, as: nil)
461
461
  check_required_ivars
462
462
 
463
+ action = action.to_s.dup
463
464
  http_method = method.to_s.upcase
464
465
 
465
466
  @html_document = nil
@@ -491,11 +492,11 @@ module ActionController
491
492
  parameters[:format] = format
492
493
  end
493
494
 
494
- generated_extras = @routes.generate_extras(parameters.merge(controller: controller_class_name, action: action.to_s))
495
+ generated_extras = @routes.generate_extras(parameters.merge(controller: controller_class_name, action: action))
495
496
  generated_path = generated_path(generated_extras)
496
497
  query_string_keys = query_parameter_names(generated_extras)
497
498
 
498
- @request.assign_parameters(@routes, controller_class_name, action.to_s, parameters, generated_path, query_string_keys)
499
+ @request.assign_parameters(@routes, controller_class_name, action, parameters, generated_path, query_string_keys)
499
500
 
500
501
  @request.session.update(session) if session
501
502
  @request.flash.update(flash || {})
@@ -82,7 +82,6 @@ module ActionDispatch # :nodoc:
82
82
  SET_COOKIE = "Set-Cookie".freeze
83
83
  LOCATION = "Location".freeze
84
84
  NO_CONTENT_CODES = [100, 101, 102, 204, 205, 304]
85
- CONTENT_TYPE_PARSER = /\A(?<type>[^;\s]+)?(?:.*;\s*charset=(?<quote>"?)(?<charset>[^;\s]+)\k<quote>)?/ # :nodoc:
86
85
 
87
86
  cattr_accessor :default_charset, default: "utf-8"
88
87
  cattr_accessor :default_headers
@@ -410,8 +409,10 @@ module ActionDispatch # :nodoc:
410
409
  NullContentTypeHeader = ContentTypeHeader.new nil, nil
411
410
 
412
411
  def parse_content_type(content_type)
413
- if content_type && match = CONTENT_TYPE_PARSER.match(content_type)
414
- ContentTypeHeader.new(match[:type], match[:charset])
412
+ if content_type
413
+ type, charset = content_type.split(/;\s*charset=/)
414
+ type = nil if type && type.empty?
415
+ ContentTypeHeader.new(type, charset)
415
416
  else
416
417
  NullContentTypeHeader
417
418
  end
@@ -119,7 +119,8 @@ module ActionDispatch
119
119
 
120
120
  class UnanchoredRegexp < AnchoredRegexp # :nodoc:
121
121
  def accept(node)
122
- %r{\A#{visit node}(?:\b|\Z)}
122
+ path = visit node
123
+ path == "/" ? %r{\A/} : %r{\A#{path}(?:\b|\Z|/)}
123
124
  end
124
125
  end
125
126
 
@@ -97,8 +97,8 @@ module ActionDispatch
97
97
  middlewares.push(build_middleware(klass, args, block))
98
98
  end
99
99
 
100
- def build(app = Proc.new)
101
- middlewares.freeze.reverse.inject(app) { |a, e| e.build(a) }
100
+ def build(app = nil, &block)
101
+ middlewares.freeze.reverse.inject(app || block) { |a, e| e.build(a) }
102
102
  end
103
103
 
104
104
  private
@@ -9,8 +9,8 @@ module ActionPack
9
9
  module VERSION
10
10
  MAJOR = 5
11
11
  MINOR = 2
12
- TINY = 3
13
- PRE = nil
12
+ TINY = 4
13
+ PRE = "rc1"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionpack
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.3
4
+ version: 5.2.4.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-28 00:00:00.000000000 Z
11
+ date: 2019-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 5.2.3
19
+ version: 5.2.4.rc1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 5.2.3
26
+ version: 5.2.4.rc1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rack
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -92,28 +92,28 @@ dependencies:
92
92
  requirements:
93
93
  - - '='
94
94
  - !ruby/object:Gem::Version
95
- version: 5.2.3
95
+ version: 5.2.4.rc1
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - '='
101
101
  - !ruby/object:Gem::Version
102
- version: 5.2.3
102
+ version: 5.2.4.rc1
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: activemodel
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - '='
108
108
  - !ruby/object:Gem::Version
109
- version: 5.2.3
109
+ version: 5.2.4.rc1
110
110
  type: :development
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - '='
115
115
  - !ruby/object:Gem::Version
116
- version: 5.2.3
116
+ version: 5.2.4.rc1
117
117
  description: Web apps on Rails. Simple, battle-tested conventions for building and
118
118
  testing MVC web applications. Works with any Rack-compatible server.
119
119
  email: david@loudthinking.com
@@ -293,8 +293,8 @@ homepage: http://rubyonrails.org
293
293
  licenses:
294
294
  - MIT
295
295
  metadata:
296
- source_code_uri: https://github.com/rails/rails/tree/v5.2.3/actionpack
297
- changelog_uri: https://github.com/rails/rails/blob/v5.2.3/actionpack/CHANGELOG.md
296
+ source_code_uri: https://github.com/rails/rails/tree/v5.2.4.rc1/actionpack
297
+ changelog_uri: https://github.com/rails/rails/blob/v5.2.4.rc1/actionpack/CHANGELOG.md
298
298
  post_install_message:
299
299
  rdoc_options: []
300
300
  require_paths:
@@ -306,12 +306,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
306
306
  version: 2.2.2
307
307
  required_rubygems_version: !ruby/object:Gem::Requirement
308
308
  requirements:
309
- - - ">="
309
+ - - ">"
310
310
  - !ruby/object:Gem::Version
311
- version: '0'
311
+ version: 1.3.1
312
312
  requirements:
313
313
  - none
314
- rubygems_version: 3.0.1
314
+ rubygems_version: 3.0.3
315
315
  signing_key:
316
316
  specification_version: 4
317
317
  summary: Web-flow and rendering framework putting the VC in MVC (part of Rails).