From ec1d7c589c7da2ba2fd004066939ed3bbab45a89 Mon Sep 17 00:00:00 2001 From: hiraokashi Date: Thu, 11 Sep 2025 15:37:31 +0900 Subject: [PATCH 01/11] missing_field_behavior 's default to ignore --- lib/pb/serializer.rb | 6 +++--- spec/examples/errors_spec.rb | 25 ++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/lib/pb/serializer.rb b/lib/pb/serializer.rb index f8c97e7..5493f26 100644 --- a/lib/pb/serializer.rb +++ b/lib/pb/serializer.rb @@ -22,11 +22,11 @@ class Configuration # @return [Logger] attr_accessor :logger # @!attribute [r] missing_field_behavior - # @return [:raise, :warn, :ignore] default: `:raise` + # @return [:raise, :warn, :ignore] default: `:ignore` attr_reader :missing_field_behavior def initialize - self.missing_field_behavior = :raise + self.missing_field_behavior = :ignore self.logger = Logger.new(STDOUT) end @@ -70,7 +70,7 @@ def build_default_mask(descriptor) case fd.type when :message case fd.submsg_name - when "google.protobuf.Timestamp", + when "google.protobuf.Timestamp", "google.protobuf.StringValue", "google.protobuf.Int32Value" , "google.protobuf.Int64Value" , diff --git a/spec/examples/errors_spec.rb b/spec/examples/errors_spec.rb index 5af53d2..7c4f5c9 100644 --- a/spec/examples/errors_spec.rb +++ b/spec/examples/errors_spec.rb @@ -39,7 +39,7 @@ allow(Pb::Serializer).to receive(:configuration).and_return(config) Pb::Serializer.configure do |c| - c.missing_field_behavior = missing_field_behavior + c.missing_field_behavior = missing_field_behavior if missing_field_behavior c.logger = Logger.new(log_buffer) end end @@ -72,6 +72,29 @@ it { expect(log_buffer.string).to be_empty } it { is_expected.to be_a TestFixture::Simple::Message } end + + context 'when missing_field_behavior is not configured (default behavior)' do + before do + # Reset configuration to test default behavior + Pb::Serializer.instance_variable_set(:@configuraiton, nil) + allow(Pb::Serializer).to receive(:configuration).and_call_original + + # Don't configure missing_field_behavior to test default + Pb::Serializer.configure do |c| + c.logger = Logger.new(log_buffer) + end + end + + # Override the parent's before block to avoid setting missing_field_behavior + let(:missing_field_behavior) { nil } + + it 'uses default value :ignore' do + expect(Pb::Serializer.configuration.missing_field_behavior).to eq(:ignore) + end + + it { expect(log_buffer.string).to be_empty } + it { is_expected.to be_a TestFixture::Simple::Message } + end end it 'raises when set invalid param to missing_field_behavior config' do From 2b758cff6b295032f2ef332d9e249385cb74c0fa Mon Sep 17 00:00:00 2001 From: hiraokashi Date: Thu, 11 Sep 2025 16:10:17 +0900 Subject: [PATCH 02/11] update gemfile --- pb-serializer.gemspec | 1 + 1 file changed, 1 insertion(+) diff --git a/pb-serializer.gemspec b/pb-serializer.gemspec index 5054d61..9c512b3 100644 --- a/pb-serializer.gemspec +++ b/pb-serializer.gemspec @@ -40,4 +40,5 @@ Gem::Specification.new do |spec| spec.add_development_dependency "sqlite3", "~> 1.4" spec.add_development_dependency "simplecov", "~> 0.18.5" spec.add_development_dependency "simplecov-cobertura", "~> 1.3" + spec.add_development_dependency "concurrent-ruby", "~> 1.3.4" end From 0ace49279639dbb109ac7a0c7cc5a4ea0af95d46 Mon Sep 17 00:00:00 2001 From: hiraokashi Date: Thu, 11 Sep 2025 16:20:17 +0900 Subject: [PATCH 03/11] update concurrent-ruby version --- pb-serializer.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pb-serializer.gemspec b/pb-serializer.gemspec index 9c512b3..21e1370 100644 --- a/pb-serializer.gemspec +++ b/pb-serializer.gemspec @@ -40,5 +40,5 @@ Gem::Specification.new do |spec| spec.add_development_dependency "sqlite3", "~> 1.4" spec.add_development_dependency "simplecov", "~> 0.18.5" spec.add_development_dependency "simplecov-cobertura", "~> 1.3" - spec.add_development_dependency "concurrent-ruby", "~> 1.3.4" + spec.add_development_dependency "concurrent-ruby", "1.3.4" end From e2729b5309729568f81c4a379221758e507c740f Mon Sep 17 00:00:00 2001 From: hiraokashi Date: Thu, 11 Sep 2025 16:25:50 +0900 Subject: [PATCH 04/11] exclude 2.5 in macos-latest --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 85587aa..93e017c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,8 @@ jobs: # See https://github.com/dashingrocket/simplecov-cobertura/pull/16 # ruby: [ 2.5, 2.6, 2.7, 3.0 ] ruby: [ 2.5, 2.6, 2.7 ] + exclude: + - { os: macos-latest, ruby: '2.5' } runs-on: ${{ matrix.os }} steps: From 654020a1de589af2da01b93240aae66810bf1877 Mon Sep 17 00:00:00 2001 From: hiraokashi Date: Thu, 11 Sep 2025 18:04:29 +0900 Subject: [PATCH 05/11] include 3.0 for ci --- .github/workflows/ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 93e017c..993039f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,8 +11,7 @@ jobs: os: [ ubuntu-latest, macos-latest ] # TODO: Wait for supporting Ruby 3.0 in simplecov-cobertura. # See https://github.com/dashingrocket/simplecov-cobertura/pull/16 - # ruby: [ 2.5, 2.6, 2.7, 3.0 ] - ruby: [ 2.5, 2.6, 2.7 ] + ruby: [ 2.6, 2.7, 3.0 ] exclude: - { os: macos-latest, ruby: '2.5' } runs-on: ${{ matrix.os }} From 99350d8bad6d398d4ef47b1f1fc1b60b79e6b062 Mon Sep 17 00:00:00 2001 From: hiraokashi Date: Thu, 11 Sep 2025 18:07:49 +0900 Subject: [PATCH 06/11] fix --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 993039f..b2badb9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,8 @@ jobs: os: [ ubuntu-latest, macos-latest ] # TODO: Wait for supporting Ruby 3.0 in simplecov-cobertura. # See https://github.com/dashingrocket/simplecov-cobertura/pull/16 - ruby: [ 2.6, 2.7, 3.0 ] + # ruby: [ 2.5, 2.6, 2.7, 3.0 ] + ruby: [ 2.6, 2.7 ] exclude: - { os: macos-latest, ruby: '2.5' } runs-on: ${{ matrix.os }} From c0b2da6a2c2097c49941b5cdc49aa76fe7f1ddfb Mon Sep 17 00:00:00 2001 From: hiraokashi Date: Thu, 11 Sep 2025 18:11:35 +0900 Subject: [PATCH 07/11] add 3.0 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b2badb9..7a480e1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: # TODO: Wait for supporting Ruby 3.0 in simplecov-cobertura. # See https://github.com/dashingrocket/simplecov-cobertura/pull/16 # ruby: [ 2.5, 2.6, 2.7, 3.0 ] - ruby: [ 2.6, 2.7 ] + ruby: [ 2.6, 2.7, 3.0 ] exclude: - { os: macos-latest, ruby: '2.5' } runs-on: ${{ matrix.os }} From 9b5eae27bb3a5aa0a1634aa73444b882734bcdd5 Mon Sep 17 00:00:00 2001 From: hiraokashi Date: Thu, 9 Oct 2025 10:57:14 +0900 Subject: [PATCH 08/11] update simple-cov for ruby 3.0 support --- .github/workflows/ci.yml | 2 +- pb-serializer.gemspec | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7a480e1..55bf650 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: # TODO: Wait for supporting Ruby 3.0 in simplecov-cobertura. # See https://github.com/dashingrocket/simplecov-cobertura/pull/16 # ruby: [ 2.5, 2.6, 2.7, 3.0 ] - ruby: [ 2.6, 2.7, 3.0 ] + ruby: [ 3.0, 3.1, 3.2 ,3.3] exclude: - { os: macos-latest, ruby: '2.5' } runs-on: ${{ matrix.os }} diff --git a/pb-serializer.gemspec b/pb-serializer.gemspec index 21e1370..731eeff 100644 --- a/pb-serializer.gemspec +++ b/pb-serializer.gemspec @@ -38,7 +38,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency "rspec", "~> 3.0" spec.add_development_dependency "rubocop", "0.67.2" # for onkcop spec.add_development_dependency "sqlite3", "~> 1.4" - spec.add_development_dependency "simplecov", "~> 0.18.5" - spec.add_development_dependency "simplecov-cobertura", "~> 1.3" + spec.add_development_dependency "simplecov", "~> 0.19" + spec.add_development_dependency "simplecov-cobertura", "~> 2.0" spec.add_development_dependency "concurrent-ruby", "1.3.4" end From 117ce59fa73fb62e79df84d04d77b2ab260cd60b Mon Sep 17 00:00:00 2001 From: hiraokashi Date: Thu, 9 Oct 2025 11:00:53 +0900 Subject: [PATCH 09/11] re update simplecov-cobertura --- pb-serializer.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pb-serializer.gemspec b/pb-serializer.gemspec index 731eeff..7e6dfba 100644 --- a/pb-serializer.gemspec +++ b/pb-serializer.gemspec @@ -39,6 +39,6 @@ Gem::Specification.new do |spec| spec.add_development_dependency "rubocop", "0.67.2" # for onkcop spec.add_development_dependency "sqlite3", "~> 1.4" spec.add_development_dependency "simplecov", "~> 0.19" - spec.add_development_dependency "simplecov-cobertura", "~> 2.0" + spec.add_development_dependency "simplecov-cobertura", "~> 3.1" spec.add_development_dependency "concurrent-ruby", "1.3.4" end From 649836d2b11976197ca7d3dab776c2f6685cf160 Mon Sep 17 00:00:00 2001 From: hiraokashi Date: Thu, 9 Oct 2025 11:22:09 +0900 Subject: [PATCH 10/11] fix --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 55bf650..bc15b23 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: # TODO: Wait for supporting Ruby 3.0 in simplecov-cobertura. # See https://github.com/dashingrocket/simplecov-cobertura/pull/16 # ruby: [ 2.5, 2.6, 2.7, 3.0 ] - ruby: [ 3.0, 3.1, 3.2 ,3.3] + ruby: [ '3.0', '3.1', '3.2', '3.3' ] exclude: - { os: macos-latest, ruby: '2.5' } runs-on: ${{ matrix.os }} From 8e3167f909ee56861bf25842af21fd2541299944 Mon Sep 17 00:00:00 2001 From: hiraokashi Date: Thu, 9 Oct 2025 11:43:35 +0900 Subject: [PATCH 11/11] remove unnecessary comments --- .github/workflows/ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc15b23..6b55dca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,9 +9,6 @@ jobs: fail-fast: false matrix: os: [ ubuntu-latest, macos-latest ] - # TODO: Wait for supporting Ruby 3.0 in simplecov-cobertura. - # See https://github.com/dashingrocket/simplecov-cobertura/pull/16 - # ruby: [ 2.5, 2.6, 2.7, 3.0 ] ruby: [ '3.0', '3.1', '3.2', '3.3' ] exclude: - { os: macos-latest, ruby: '2.5' }