@@ -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