Skip to content

Commit 9b01b6a

Browse files
committed
Contort original Rack 3 algorithm to assume val comes as an array as with our original alg
1 parent 93aadbd commit 9b01b6a

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/main/ruby/rack/handler/servlet/servlet_env.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -180,16 +180,16 @@ def store_parameter3(params, key, val, depth = 0)
180180

181181
if after == ''
182182
if n_key == '[]' && depth != 0
183-
return [val]
183+
return val # was [val]: Different to original alg, as val is always an array
184184
else
185-
params[n_key] = val
185+
params[n_key] = val.last # was val: Different to original alg, as val is always an array
186186
end
187187
elsif after == "["
188-
params[key] = val
188+
params[key] = val.last # was val: Different to original alg, as val is always an array
189189
elsif after == "[]"
190190
params[n_key] ||= []
191191
return mark_parameter_error "expected Array (got #{params[n_key].class.name}) for param `#{n_key}'" unless params[n_key].is_a?(Array)
192-
params[n_key] << val
192+
params[n_key] += val # was <<: Different to original alg, as val is always an array
193193
elsif after.start_with?('[]')
194194
# Recognize x[][y] (hash inside array) parameters
195195
unless after[2] == '[' && after.end_with?(']') && (child_key = after[3, after.length-4]) && !child_key.empty? && !child_key.index('[') && !child_key.index(']')
@@ -202,7 +202,7 @@ def store_parameter3(params, key, val, depth = 0)
202202
if params[n_key].last.is_a?(Hash) && !params_hash_has_key?(params[n_key].last, child_key)
203203
store_parameter3(params[n_key].last, child_key, val, depth + 1)
204204
else
205-
params[n_key] << store_parameter3({ }, child_key, val, depth + 1)
205+
params[n_key] += store_parameter3({ }, child_key, val, depth + 1) # was <<: Different to original alg, as val is always an array
206206
end
207207
else
208208
params[n_key] ||= {}

0 commit comments

Comments
 (0)