From 50b28eb0778d87191c88abee13045e8adb1843d2 Mon Sep 17 00:00:00 2001 From: weaver-bot Date: Tue, 14 Jul 2026 10:31:08 +0000 Subject: [PATCH] chore: regenerate ruby-sdk from weaver@57c9087 --- lib/paystack/base_resource.rb | 8 ++++++++ lib/paystack/client.rb | 8 ++++++++ lib/paystack/transport.rb | 18 ++++++++++++++++++ test/paystack/client_test.rb | 16 ++++++++++++++++ 4 files changed, 50 insertions(+) diff --git a/lib/paystack/base_resource.rb b/lib/paystack/base_resource.rb index cf70be3..f4c798b 100644 --- a/lib/paystack/base_resource.rb +++ b/lib/paystack/base_resource.rb @@ -9,5 +9,13 @@ def self.new(transport) instance.instance_variable_set(:@transport, transport) instance end + + def inspect + @transport.inspect + end + + def to_s + @transport.to_s + end end end diff --git a/lib/paystack/client.rb b/lib/paystack/client.rb index e11cfb1..7636d27 100644 --- a/lib/paystack/client.rb +++ b/lib/paystack/client.rb @@ -142,5 +142,13 @@ def virtual_terminal @virtual_terminal ||= Resources::VirtualTerminal.new(@transport) end + + def inspect + @transport.inspect + end + + def to_s + @transport.to_s + end end end diff --git a/lib/paystack/transport.rb b/lib/paystack/transport.rb index 3feab8e..da94289 100644 --- a/lib/paystack/transport.rb +++ b/lib/paystack/transport.rb @@ -60,5 +60,23 @@ def ssl_options read_timeout: 30 } end + + def masked_api_key + visible_prefix = 8 + visible_suffix = 4 + return "[key too short to mask]" if @api_key.nil? || @api_key.length <= visible_prefix + visible_suffix + + "#{@api_key[0, visible_prefix]}#{"*" * 8}#{@api_key[-visible_suffix, visible_suffix]}" + end + + public + + def inspect + "#<#{self.class.name} api_key=#{masked_api_key.inspect}>" + end + + def to_s + inspect + end end end diff --git a/test/paystack/client_test.rb b/test/paystack/client_test.rb index fb43551..22ad6ed 100644 --- a/test/paystack/client_test.rb +++ b/test/paystack/client_test.rb @@ -251,4 +251,20 @@ def test_memoizes_virtual_terminal_resource assert_same @client.virtual_terminal, @client.virtual_terminal end + + def test_inspect_masks_the_api_key + key = "sk_test_abcdefghijklmnopqrstuvwxyz" + client = Paystack::Client.new(key) + + refute_includes client.inspect, key + assert_includes client.inspect, key[0, 8] + assert_includes client.inspect, key[-4, 4] + end + + def test_to_s_masks_the_api_key + key = "sk_test_abcdefghijklmnopqrstuvwxyz" + client = Paystack::Client.new(key) + + refute_includes client.to_s, key + end end