diff -pruN 2.2.0-1/CHANGES.md 2.3.0-1/CHANGES.md
--- 2.2.0-1/CHANGES.md	2020-02-26 13:33:56.000000000 +0000
+++ 2.3.0-1/CHANGES.md	2020-04-02 11:00:36.000000000 +0000
@@ -1,3 +1,10 @@
+## 2.3.0 (2020-03-08)
+
+* [#29](https://github.com/httprb/form_data/pull/29)
+  Enhance HTTP::FormData::Urlencoded with per-instance encoder.
+  [@summera][]
+
+
 ## 2.2.0 (2020-01-09)
 
 * [#28](https://github.com/httprb/form_data/pull/28)
@@ -86,3 +93,4 @@
 [@mhickman]: https://github.com/mhickman
 [@HoneyryderChuck]: https://github.com/HoneyryderChuck
 [@FabienChaynes]: https://github.com/FabienChaynes
+[@summera]: https://github.com/summera
diff -pruN 2.2.0-1/debian/changelog 2.3.0-1/debian/changelog
--- 2.2.0-1/debian/changelog	2020-02-26 13:44:52.000000000 +0000
+++ 2.3.0-1/debian/changelog	2022-07-31 01:08:34.000000000 +0000
@@ -1,3 +1,20 @@
+ruby-http-form-data (2.3.0-1) unstable; urgency=medium
+
+  [ Debian Janitor ]
+  * Set field Upstream-Contact in debian/copyright.
+  * Remove obsolete fields Contact, Name from debian/upstream/metadata
+    (already present in machine-readable debian/copyright).
+  * Apply multi-arch hints.
+    + ruby-http-form-data: Add Multi-Arch: foreign.
+
+  [ Ajayi Olatunji ]
+  * New upstream Release
+  * New upstream version 2.3.0
+  * d/control (Build-Depends): Use debhelper-compact version 13
+  * d/clean: remove upstream directory autogenerated during build
+
+ -- Ajayi Olatunji <ajayiolatunji15@yahoo.com>  Sun, 31 Jul 2022 01:08:34 +0000
+
 ruby-http-form-data (2.2.0-1) unstable; urgency=medium
 
   * Team upload.
diff -pruN 2.2.0-1/debian/clean 2.3.0-1/debian/clean
--- 2.2.0-1/debian/clean	1970-01-01 00:00:00.000000000 +0000
+++ 2.3.0-1/debian/clean	2022-07-31 01:08:34.000000000 +0000
@@ -0,0 +1 @@
+coverage/
diff -pruN 2.2.0-1/debian/control 2.3.0-1/debian/control
--- 2.2.0-1/debian/control	2020-02-26 13:44:52.000000000 +0000
+++ 2.3.0-1/debian/control	2022-07-31 01:08:34.000000000 +0000
@@ -1,10 +1,10 @@
 Source: ruby-http-form-data
-Maintainer: Debian Ruby Extras Maintainers <pkg-ruby-extras-maintainers@lists.alioth.debian.org>
+Maintainer: Debian Ruby Team <pkg-ruby-extras-maintainers@lists.alioth.debian.org>
 Uploaders: Balasankar C <balasankarc@autistici.org>
 Section: ruby
 Testsuite: autopkgtest-pkg-ruby
 Priority: optional
-Build-Depends: debhelper-compat (= 12),
+Build-Depends: debhelper-compat (= 13),
                gem2deb,
                rake,
                ruby-rspec,
@@ -28,3 +28,4 @@ Description: utility-belt to build form
  `multipart/form-data` types. It was pulled out from the gem 'http' to provide
  ability to build form data request bodies.
 XB-Ruby-Versions: ${ruby:Versions}
+Multi-Arch: foreign
diff -pruN 2.2.0-1/debian/copyright 2.3.0-1/debian/copyright
--- 2.2.0-1/debian/copyright	2020-02-26 13:44:52.000000000 +0000
+++ 2.3.0-1/debian/copyright	2022-07-31 01:08:34.000000000 +0000
@@ -1,6 +1,7 @@
 Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: http-form_data
 Source: https://github.com/httprb/form_data.rb
+Upstream-Contact: https://github.com/httprb/form_data.rb/issues
 
 Files: *
 Copyright: 2015 Aleksey V Zapparov <ixti@member.fsf.org>
diff -pruN 2.2.0-1/debian/salsa-ci.yml 2.3.0-1/debian/salsa-ci.yml
--- 2.2.0-1/debian/salsa-ci.yml	1970-01-01 00:00:00.000000000 +0000
+++ 2.3.0-1/debian/salsa-ci.yml	2022-07-31 01:08:34.000000000 +0000
@@ -0,0 +1,4 @@
+---
+include:
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
diff -pruN 2.2.0-1/debian/upstream/metadata 2.3.0-1/debian/upstream/metadata
--- 2.2.0-1/debian/upstream/metadata	2020-02-26 13:44:52.000000000 +0000
+++ 2.3.0-1/debian/upstream/metadata	2022-07-31 01:08:34.000000000 +0000
@@ -3,7 +3,5 @@ Archive: GitHub
 Bug-Database: https://github.com/httprb/form_data.rb/issues
 Bug-Submit: https://github.com/httprb/form_data.rb/issues
 Changelog: https://github.com/httprb/form_data.rb/tags
-Contact: https://github.com/httprb/form_data.rb/issues
-Name: http-form_data
 Repository: https://github.com/httprb/form_data.rb.git
 Repository-Browse: https://github.com/httprb/form_data.rb
diff -pruN 2.2.0-1/lib/http/form_data/urlencoded.rb 2.3.0-1/lib/http/form_data/urlencoded.rb
--- 2.2.0-1/lib/http/form_data/urlencoded.rb	2020-02-26 13:33:56.000000000 +0000
+++ 2.3.0-1/lib/http/form_data/urlencoded.rb	2020-04-02 11:00:36.000000000 +0000
@@ -63,8 +63,9 @@ module HTTP
       end
 
       # @param [#to_h, Hash] data form data key-value Hash
-      def initialize(data)
-        @io = StringIO.new(self.class.encoder.call(FormData.ensure_hash(data)))
+      def initialize(data, encoder: nil)
+        encoder ||= self.class.encoder
+        @io = StringIO.new(encoder.call(FormData.ensure_hash(data)))
       end
 
       # Returns MIME type to be used for HTTP request `Content-Type` header.
diff -pruN 2.2.0-1/lib/http/form_data/version.rb 2.3.0-1/lib/http/form_data/version.rb
--- 2.2.0-1/lib/http/form_data/version.rb	2020-02-26 13:33:56.000000000 +0000
+++ 2.3.0-1/lib/http/form_data/version.rb	2020-04-02 11:00:36.000000000 +0000
@@ -3,6 +3,6 @@
 module HTTP
   module FormData
     # Gem version.
-    VERSION = "2.2.0"
+    VERSION = "2.3.0"
   end
 end
diff -pruN 2.2.0-1/lib/http/form_data.rb 2.3.0-1/lib/http/form_data.rb
--- 2.2.0-1/lib/http/form_data.rb	2020-02-26 13:33:56.000000000 +0000
+++ 2.3.0-1/lib/http/form_data.rb	2020-04-02 11:00:36.000000000 +0000
@@ -41,11 +41,14 @@ module HTTP
       # @param [#to_h, Hash] data
       # @return [Multipart] if any of values is a {FormData::File}
       # @return [Urlencoded] otherwise
-      def create(data)
-        data  = ensure_hash data
-        klass = multipart?(data) ? Multipart : Urlencoded
+      def create(data, encoder: nil)
+        data = ensure_hash data
 
-        klass.new data
+        if multipart?(data)
+          Multipart.new(data)
+        else
+          Urlencoded.new(data, :encoder => encoder)
+        end
       end
 
       # Coerce `obj` to Hash.
diff -pruN 2.2.0-1/spec/lib/http/form_data/urlencoded_spec.rb 2.3.0-1/spec/lib/http/form_data/urlencoded_spec.rb
--- 2.2.0-1/spec/lib/http/form_data/urlencoded_spec.rb	2020-02-26 13:33:56.000000000 +0000
+++ 2.3.0-1/spec/lib/http/form_data/urlencoded_spec.rb	2020-04-02 11:00:36.000000000 +0000
@@ -64,4 +64,15 @@ RSpec.describe HTTP::FormData::Urlencode
       expect(form_data.to_s).to eq('{"foo[bar]":"test"}')
     end
   end
+
+  context "with custom instance level encoder" do
+    let(:encoder) { proc { |data| ::JSON.dump(data) } }
+    subject(:form_data) do
+      HTTP::FormData::Urlencoded.new(data, :encoder => encoder)
+    end
+
+    it "uses encoder passed to initializer" do
+      expect(form_data.to_s).to eq('{"foo[bar]":"test"}')
+    end
+  end
 end
