From 3cdc4979b835f81b766bc188a744675f94cdb876 Mon Sep 17 00:00:00 2001 From: Oskar Eichler Date: Thu, 27 Aug 2026 23:35:53 +0300 Subject: [PATCH 1/2] Preserve nil values in array-valued form fields --- lib/uri/common.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/uri/common.rb b/lib/uri/common.rb index 971a684..57708e2 100644 --- a/lib/uri/common.rb +++ b/lib/uri/common.rb @@ -575,6 +575,7 @@ def self.encode_www_form(enum, enc=nil) str << '=' str << encode_www_form_component(w, enc) end + str end.join('&') else str = encode_www_form_component(k, enc) From 79e80902a5816ead03f8a116c5321659a0703c1e Mon Sep 17 00:00:00 2001 From: Oskar Eichler <62393985+OskarEichler@users.noreply.github.com> Date: Fri, 28 Aug 2026 15:04:01 +0300 Subject: [PATCH 2/2] test: cover URI regression --- test/uri/test_common.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/uri/test_common.rb b/test/uri/test_common.rb index 5692640..98098bb 100644 --- a/test/uri/test_common.rb +++ b/test/uri/test_common.rb @@ -17,6 +17,11 @@ class Foo end end + + def test_encode_www_form_preserves_nil_array_values + assert_equal("foo&foo=a&foo", URI.encode_www_form(foo: [nil, "a", nil])) + end + def test_fallback_constants EnvUtil.suppress_warning do assert_raise(NameError) { URI::FOO }