From fbf1aea9f12f11962e8509167365e1b4e6e064e2 Mon Sep 17 00:00:00 2001 From: Oskar Eichler Date: Fri, 2 Oct 2026 11:04:50 +0700 Subject: [PATCH 1/2] fix: serialize ClientSecrets with JSON.generate --- .../lib/google/api_client/client_secrets.rb | 4 ++-- .../spec/google/api_client/client_secrets_spec.rb | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/google-apis-core/lib/google/api_client/client_secrets.rb b/google-apis-core/lib/google/api_client/client_secrets.rb index fb629bcce75..ee097620d0b 100644 --- a/google-apis-core/lib/google/api_client/client_secrets.rb +++ b/google-apis-core/lib/google/api_client/client_secrets.rb @@ -118,8 +118,8 @@ def initialize(options={}) # # @return [String] # JSON - def to_json - return Json.dump(to_hash) + def to_json(*args) + return JSON.generate(to_hash, *args) end def to_hash diff --git a/google-apis-core/spec/google/api_client/client_secrets_spec.rb b/google-apis-core/spec/google/api_client/client_secrets_spec.rb index a842b771563..9f9704ef397 100644 --- a/google-apis-core/spec/google/api_client/client_secrets_spec.rb +++ b/google-apis-core/spec/google/api_client/client_secrets_spec.rb @@ -19,6 +19,18 @@ FIXTURES_PATH = File.expand_path('../../../fixtures', __FILE__) RSpec.describe Google::APIClient::ClientSecrets do + describe '#to_json' do + let(:secrets) { described_class.new('installed' => { 'client_id' => 'example-client' }) } + + it 'serializes the client secrets hash' do + expect(JSON.parse(secrets.to_json)).to eq(secrets.to_hash) + end + + it 'accepts the JSON.generate callback arguments' do + expect(JSON.parse(JSON.generate(secrets))).to eq(secrets.to_hash) + end + end + describe '::new' do let(:filename) { File.join(FIXTURES_PATH, 'files', 'client_secrets.json') } let(:data) { File.open(filename, 'r') { |file| JSON.load(file.read) } } From 458134ec96d57e60cae4998d2ffa1955c8a7c285 Mon Sep 17 00:00:00 2001 From: Oskar Eichler Date: Sat, 10 Oct 2026 01:00:43 +0700 Subject: [PATCH 2/2] fix: use JSON.dump for client secrets serialization --- google-apis-core/lib/google/api_client/client_secrets.rb | 4 ++-- .../spec/google/api_client/client_secrets_spec.rb | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/google-apis-core/lib/google/api_client/client_secrets.rb b/google-apis-core/lib/google/api_client/client_secrets.rb index ee097620d0b..32142439bbb 100644 --- a/google-apis-core/lib/google/api_client/client_secrets.rb +++ b/google-apis-core/lib/google/api_client/client_secrets.rb @@ -118,8 +118,8 @@ def initialize(options={}) # # @return [String] # JSON - def to_json(*args) - return JSON.generate(to_hash, *args) + def to_json + return JSON.dump(to_hash) end def to_hash diff --git a/google-apis-core/spec/google/api_client/client_secrets_spec.rb b/google-apis-core/spec/google/api_client/client_secrets_spec.rb index 9f9704ef397..3d6c8392721 100644 --- a/google-apis-core/spec/google/api_client/client_secrets_spec.rb +++ b/google-apis-core/spec/google/api_client/client_secrets_spec.rb @@ -25,10 +25,6 @@ it 'serializes the client secrets hash' do expect(JSON.parse(secrets.to_json)).to eq(secrets.to_hash) end - - it 'accepts the JSON.generate callback arguments' do - expect(JSON.parse(JSON.generate(secrets))).to eq(secrets.to_hash) - end end describe '::new' do