summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rubygem-protobuf-3.10.3-generate-camel-cased-keys_add-message-from-json_64bit-int-as-json.patch (renamed from rubygem-protobuf-3.10.3-cucumber-messages-compatibility.patch)94
-rw-r--r--rubygem-protobuf.spec17
2 files changed, 56 insertions, 55 deletions
diff --git a/rubygem-protobuf-3.10.3-cucumber-messages-compatibility.patch b/rubygem-protobuf-3.10.3-generate-camel-cased-keys_add-message-from-json_64bit-int-as-json.patch
index 62c8a34..bd0e11b 100644
--- a/rubygem-protobuf-3.10.3-cucumber-messages-compatibility.patch
+++ b/rubygem-protobuf-3.10.3-generate-camel-cased-keys_add-message-from-json_64bit-int-as-json.patch
@@ -1,8 +1,8 @@
diff --git a/lib/protobuf/field/bytes_field.rb b/lib/protobuf/field/bytes_field.rb
-index 81a3634d..e120835c 100644
+index 81a3634..e120835 100644
--- a/lib/protobuf/field/bytes_field.rb
+++ b/lib/protobuf/field/bytes_field.rb
-@@ -48,7 +48,18 @@ def wire_type
+@@ -48,7 +48,18 @@ module Protobuf
def coerce!(value)
case value
@@ -22,7 +22,7 @@ index 81a3634d..e120835c 100644
value.to_s
when NilClass
nil
-@@ -59,7 +70,7 @@ def coerce!(value)
+@@ -59,7 +70,7 @@ module Protobuf
end
end
@@ -32,10 +32,10 @@ index 81a3634d..e120835c 100644
end
end
diff --git a/lib/protobuf/field/enum_field.rb b/lib/protobuf/field/enum_field.rb
-index 6993faff..12867adf 100644
+index 6993faf..12867ad 100644
--- a/lib/protobuf/field/enum_field.rb
+++ b/lib/protobuf/field/enum_field.rb
-@@ -37,6 +37,11 @@ def coerce!(value)
+@@ -37,6 +37,11 @@ module Protobuf
type_class.fetch(value) || fail(TypeError, "Invalid Enum value: #{value.inspect} for #{name}")
end
@@ -48,10 +48,10 @@ index 6993faff..12867adf 100644
##
diff --git a/lib/protobuf/field/field_array.rb b/lib/protobuf/field/field_array.rb
-index e4f2eb1a..47f9c379 100644
+index e4f2eb1..47f9c37 100644
--- a/lib/protobuf/field/field_array.rb
+++ b/lib/protobuf/field/field_array.rb
-@@ -49,14 +49,14 @@ def to_hash_value
+@@ -49,14 +49,14 @@ module Protobuf
# Return a hash-representation of the given values for this field type
# that is safe to convert to JSON.
# The value in this case would be an array.
@@ -68,7 +68,7 @@ index e4f2eb1a..47f9c379 100644
end
end
end
-@@ -81,6 +81,8 @@ def normalize(value)
+@@ -81,6 +81,8 @@ module Protobuf
if field.is_a?(::Protobuf::Field::EnumField)
field.type_class.fetch(value)
@@ -78,10 +78,10 @@ index e4f2eb1a..47f9c379 100644
value
elsif field.is_a?(::Protobuf::Field::MessageField) && value.respond_to?(:to_hash)
diff --git a/lib/protobuf/field/field_hash.rb b/lib/protobuf/field/field_hash.rb
-index 36b26447..94eedbb9 100644
+index 36b2644..94eedbb 100644
--- a/lib/protobuf/field/field_hash.rb
+++ b/lib/protobuf/field/field_hash.rb
-@@ -58,14 +58,14 @@ def to_hash_value
+@@ -58,14 +58,14 @@ module Protobuf
# The value in this case would be the hash itself, right? Unfortunately
# not because the values of the map could be messages themselves that we
# need to transform.
@@ -99,10 +99,10 @@ index 36b26447..94eedbb9 100644
end
end
diff --git a/lib/protobuf/field/int64_field.rb b/lib/protobuf/field/int64_field.rb
-index 3b338894..f2597b25 100644
+index 3b33889..f2597b2 100644
--- a/lib/protobuf/field/int64_field.rb
+++ b/lib/protobuf/field/int64_field.rb
-@@ -29,6 +29,13 @@ def acceptable?(val)
+@@ -29,6 +29,13 @@ module Protobuf
return false
end
@@ -117,10 +117,10 @@ index 3b338894..f2597b25 100644
end
end
diff --git a/lib/protobuf/field/sint64_field.rb b/lib/protobuf/field/sint64_field.rb
-index 2aba7dfa..0c1c0856 100644
+index 2aba7df..0c1c085 100644
--- a/lib/protobuf/field/sint64_field.rb
+++ b/lib/protobuf/field/sint64_field.rb
-@@ -16,6 +16,13 @@ def self.min
+@@ -16,6 +16,13 @@ module Protobuf
INT64_MIN
end
@@ -135,10 +135,10 @@ index 2aba7dfa..0c1c0856 100644
end
end
diff --git a/lib/protobuf/field/string_field.rb b/lib/protobuf/field/string_field.rb
-index 6c9c278f..551bdd23 100644
+index 6c9c278..551bdd2 100644
--- a/lib/protobuf/field/string_field.rb
+++ b/lib/protobuf/field/string_field.rb
-@@ -43,7 +43,7 @@ def encode(value)
+@@ -43,7 +43,7 @@ module Protobuf
"#{::Protobuf::Field::VarintField.encode(value_to_encode.bytesize)}#{value_to_encode}"
end
@@ -148,10 +148,10 @@ index 6c9c278f..551bdd23 100644
end
end
diff --git a/lib/protobuf/field/uint64_field.rb b/lib/protobuf/field/uint64_field.rb
-index 8a060f14..df041fc5 100644
+index 8a060f1..df041fc 100644
--- a/lib/protobuf/field/uint64_field.rb
+++ b/lib/protobuf/field/uint64_field.rb
-@@ -16,6 +16,13 @@ def self.min
+@@ -16,6 +16,13 @@ module Protobuf
0
end
@@ -166,10 +166,10 @@ index 8a060f14..df041fc5 100644
end
end
diff --git a/lib/protobuf/message.rb b/lib/protobuf/message.rb
-index a13c0d19..b5b723f5 100644
+index a13c0d1..eca075d 100644
--- a/lib/protobuf/message.rb
+++ b/lib/protobuf/message.rb
-@@ -21,6 +21,22 @@ def self.to_json
+@@ -21,6 +21,22 @@ module Protobuf
name
end
@@ -192,7 +192,7 @@ index a13c0d19..b5b723f5 100644
##
# Constructor
#
-@@ -134,29 +150,36 @@ def to_hash_with_string_keys
+@@ -134,29 +150,36 @@ module Protobuf
end
def to_json(options = {})
@@ -226,7 +226,7 @@ index a13c0d19..b5b723f5 100644
end
- result[field.name] = hashed_value
-+ if proto3 && (hashed_value.nil? || value == field.class.default rescue field.default rescue nil)
++ if proto3 && (hashed_value.nil? || value == field.class.default)
+ result.delete(field.name)
+ else
+ key = proto3 ? field.name.to_s.camelize(:lower).to_sym : field.name
@@ -236,10 +236,10 @@ index a13c0d19..b5b723f5 100644
result
diff --git a/spec/encoding/all_types_spec.rb b/spec/encoding/all_types_spec.rb
-index fbd38b46..04ddb866 100644
+index fbd38b4..04ddb86 100644
--- a/spec/encoding/all_types_spec.rb
+++ b/spec/encoding/all_types_spec.rb
-@@ -18,7 +18,7 @@
+@@ -18,7 +18,7 @@ RSpec.describe ::Protobuf do
:optional_double => 112,
:optional_bool => true,
:optional_string => "115",
@@ -248,7 +248,7 @@ index fbd38b46..04ddb866 100644
:optional_nested_message => Protobuf_unittest::TestAllTypes::NestedMessage.new(:bb => 118),
:optional_foreign_message => Protobuf_unittest::ForeignMessage.new(:c => 119),
:optional_import_message => Protobuf_unittest_import::ImportMessage.new(:d => 120),
-@@ -43,7 +43,7 @@
+@@ -43,7 +43,7 @@ RSpec.describe ::Protobuf do
:repeated_double => [212, 312],
:repeated_bool => [true, false],
:repeated_string => ["215", "315"],
@@ -257,7 +257,7 @@ index fbd38b46..04ddb866 100644
:repeated_nested_message => [
::Protobuf_unittest::TestAllTypes::NestedMessage.new(:bb => 218),
::Protobuf_unittest::TestAllTypes::NestedMessage.new(:bb => 318),
-@@ -88,7 +88,7 @@
+@@ -88,7 +88,7 @@ RSpec.describe ::Protobuf do
:default_double => 412,
:default_bool => false,
:default_string => "415",
@@ -267,13 +267,13 @@ index fbd38b46..04ddb866 100644
:default_foreign_enum => ::Protobuf_unittest::ForeignEnum::FOREIGN_FOO,
:default_import_enum => ::Protobuf_unittest_import::ImportEnum::IMPORT_FOO,
diff --git a/spec/encoding/extreme_values_spec.rb b/spec/encoding/extreme_values_spec.rb
-index 477e695a..7f3d516f 100644
+index 477e695..7f3d516 100644
Binary files a/spec/encoding/extreme_values_spec.rb and b/spec/encoding/extreme_values_spec.rb differ
diff --git a/spec/lib/protobuf/field/enum_field_spec.rb b/spec/lib/protobuf/field/enum_field_spec.rb
-index cd72760d..c2e04eed 100644
+index cd72760..c2e04ee 100644
--- a/spec/lib/protobuf/field/enum_field_spec.rb
+++ b/spec/lib/protobuf/field/enum_field_spec.rb
-@@ -23,4 +23,22 @@
+@@ -23,4 +23,22 @@ RSpec.describe Protobuf::Field::EnumField do
expect(message.decode(instance.encode).enum).to eq(-33)
end
end
@@ -297,10 +297,10 @@ index cd72760d..c2e04eed 100644
+ end
end
diff --git a/spec/lib/protobuf/field/fixed64_field_spec.rb b/spec/lib/protobuf/field/fixed64_field_spec.rb
-index d7feb120..00ad743a 100644
+index d7feb12..00ad743 100644
--- a/spec/lib/protobuf/field/fixed64_field_spec.rb
+++ b/spec/lib/protobuf/field/fixed64_field_spec.rb
-@@ -4,4 +4,30 @@
+@@ -4,4 +4,30 @@ RSpec.describe Protobuf::Field::Fixed64Field do
it_behaves_like :packable_field, described_class
@@ -332,10 +332,10 @@ index d7feb120..00ad743a 100644
+ end
end
diff --git a/spec/lib/protobuf/field/int64_field_spec.rb b/spec/lib/protobuf/field/int64_field_spec.rb
-index 1bbe7c04..d0c77d34 100644
+index 1bbe7c0..d0c77d3 100644
--- a/spec/lib/protobuf/field/int64_field_spec.rb
+++ b/spec/lib/protobuf/field/int64_field_spec.rb
-@@ -4,4 +4,30 @@
+@@ -4,4 +4,30 @@ RSpec.describe Protobuf::Field::Int64Field do
it_behaves_like :packable_field, described_class
@@ -367,10 +367,10 @@ index 1bbe7c04..d0c77d34 100644
+ end
end
diff --git a/spec/lib/protobuf/field/sfixed64_field_spec.rb b/spec/lib/protobuf/field/sfixed64_field_spec.rb
-index f380ed5d..7988f45f 100644
+index f380ed5..7988f45 100644
--- a/spec/lib/protobuf/field/sfixed64_field_spec.rb
+++ b/spec/lib/protobuf/field/sfixed64_field_spec.rb
-@@ -6,4 +6,30 @@
+@@ -6,4 +6,30 @@ RSpec.describe Protobuf::Field::Sfixed64Field do
let(:value) { [-1, 0, 1] }
end
@@ -402,10 +402,10 @@ index f380ed5d..7988f45f 100644
+ end
end
diff --git a/spec/lib/protobuf/field/sint64_field_spec.rb b/spec/lib/protobuf/field/sint64_field_spec.rb
-index 84ca7304..e6fc05ff 100644
+index 84ca730..e6fc05f 100644
--- a/spec/lib/protobuf/field/sint64_field_spec.rb
+++ b/spec/lib/protobuf/field/sint64_field_spec.rb
-@@ -6,4 +6,30 @@
+@@ -6,4 +6,30 @@ RSpec.describe Protobuf::Field::Sint64Field do
let(:value) { [-1, 0, 1] }
end
@@ -437,10 +437,10 @@ index 84ca7304..e6fc05ff 100644
+ end
end
diff --git a/spec/lib/protobuf/field/uint64_field_spec.rb b/spec/lib/protobuf/field/uint64_field_spec.rb
-index 61b8d1b9..90bc0306 100644
+index 61b8d1b..90bc030 100644
--- a/spec/lib/protobuf/field/uint64_field_spec.rb
+++ b/spec/lib/protobuf/field/uint64_field_spec.rb
-@@ -4,4 +4,30 @@
+@@ -4,4 +4,30 @@ RSpec.describe Protobuf::Field::Uint64Field do
it_behaves_like :packable_field, described_class
@@ -472,10 +472,10 @@ index 61b8d1b9..90bc0306 100644
+ end
end
diff --git a/spec/lib/protobuf/message_spec.rb b/spec/lib/protobuf/message_spec.rb
-index 96668b67..6a3f6d9c 100644
+index 96668b6..cd49753 100644
--- a/spec/lib/protobuf/message_spec.rb
+++ b/spec/lib/protobuf/message_spec.rb
-@@ -429,7 +429,7 @@
+@@ -429,7 +429,7 @@ RSpec.describe Protobuf::Message do
specify { expect(subject.to_json).to eq '{"name":"Test Name","active":false}' }
context 'for byte fields' do
@@ -484,12 +484,12 @@ index 96668b67..6a3f6d9c 100644
subject do
::Test::ResourceFindRequest.new(:widget_bytes => [bytes])
-@@ -437,6 +437,36 @@
+@@ -437,6 +437,36 @@ RSpec.describe Protobuf::Message do
specify { expect(subject.to_json).to eq '{"widget_bytes":["Bo0xSFAXOmI="]}' }
end
+
-+ context 'using proto3 produces lower case field names' do
++ context 'using lower camel case field names' do
+ let(:bytes) { "\x06\x8D1HP\x17:b".force_encoding(Encoding::ASCII_8BIT) }
+
+ subject do
@@ -522,10 +522,10 @@ index 96668b67..6a3f6d9c 100644
describe '.to_json' do
diff --git a/spec/support/protos/resource.pb.rb b/spec/support/protos/resource.pb.rb
-index f81ef52f..e765b1ce 100644
+index f81ef52..e765b1c 100644
--- a/spec/support/protos/resource.pb.rb
+++ b/spec/support/protos/resource.pb.rb
-@@ -72,6 +72,7 @@ class ResourceFindRequest
+@@ -72,6 +72,7 @@ module Test
optional :bool, :active, 2
repeated :string, :widgets, 3
repeated :bytes, :widget_bytes, 4
@@ -533,13 +533,13 @@ index f81ef52f..e765b1ce 100644
end
class ResourceSleepRequest
-@@ -169,4 +170,3 @@ class ResourceService < ::Protobuf::Rpc::Service
+@@ -169,4 +170,3 @@ module Test
end
end
-
diff --git a/spec/support/protos/resource.proto b/spec/support/protos/resource.proto
-index 70b338b3..a5573e24 100644
+index 70b338b..a5573e2 100644
--- a/spec/support/protos/resource.proto
+++ b/spec/support/protos/resource.proto
@@ -47,6 +47,7 @@ message ResourceFindRequest {
diff --git a/rubygem-protobuf.spec b/rubygem-protobuf.spec
index f71feeb..eb25643 100644
--- a/rubygem-protobuf.spec
+++ b/rubygem-protobuf.spec
@@ -3,18 +3,19 @@
Name: rubygem-%{gem_name}
Version: 3.10.3
-Release: 1.10%{?dist}
+Release: 1.11%{?dist}
Summary: Google Protocol Buffers serialization and RPC implementation for Ruby
License: MIT
URL: https://github.com/localshred/protobuf
Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem
-# We need patch from the cucumber fork to make protobuf compatible with cucumber-messages
-# Gemspec rename and version bumps were omitted from the diff by hand.
-# curl -L https://github.com/cucumber/protobuf/compare/v3.10.3...v3.10.8.diff -o rubygem-protobuf-3.10.3-cucumber-messages-compatibility.patch
-Patch0: %{name}-%{version}-cucumber-messages-compatibility.patch
-# For some reason spec/encoding/extreme_values_spec.rb does not appear in the previous patch properly
-# even though it should appear in previous diff creation, so when applying the file is unchanged and test fails.
-# Let's add the patch explicitly, it just enforces encoding in test case.
+# We need PRs #410 #411 #415 to satisfy requirements of rubygem-cucumber-messages.
+# git clone https://github.com/ruby-protobuf/protobuf.git && cd protobuf
+# git fetch origin pull/410/head:pr-410 && git fetch origin pull/411/head:pr-411 && git fetch origin pull/415/head:pr-415
+# git checkout v3.10.3 && git rebase pr-410 && git rebase pr-411 && git rebase pr-415
+# git diff v3.10.3 -U > rubygem-protobuf-3.10.3-generate-camel-cased-keys_add-message-from-json_64bit-int-as-json.patch
+Patch0: %{name}-%{version}-generate-camel-cased-keys_add-message-from-json_64bit-int-as-json.patch
+# For some reason git thinks that spec/encoding/extreme_values_spec.rb is a binary file
+# even though it should have appeared in previous diff creation, we need extra patch for that.
Patch1: %{name}-%{version}-spec-extreme-values-force-ascii-utf8-encoding.patch
BuildRequires: ruby(release)
BuildRequires: rubygems-devel