From 6d847adda7b79f1e4668e848600caca09227459d Mon Sep 17 00:00:00 2001 From: Chris McClymont Date: Wed, 5 May 2021 13:26:14 +1000 Subject: [PATCH] Add class method from_time to ruby well known types - Timestamp --- ruby/lib/google/protobuf/well_known_types.rb | 5 +++++ ruby/tests/well_known_types_test.rb | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ruby/lib/google/protobuf/well_known_types.rb b/ruby/lib/google/protobuf/well_known_types.rb index 37f8d5b675cd..c9a9ab145545 100755 --- a/ruby/lib/google/protobuf/well_known_types.rb +++ b/ruby/lib/google/protobuf/well_known_types.rb @@ -85,6 +85,11 @@ def to_time def from_time(time) self.seconds = time.to_i self.nanos = time.nsec + self + end + + def self.from_time(time) + new.from_time(time) end def to_i diff --git a/ruby/tests/well_known_types_test.rb b/ruby/tests/well_known_types_test.rb index ea042eb02441..c069764167fc 100755 --- a/ruby/tests/well_known_types_test.rb +++ b/ruby/tests/well_known_types_test.rb @@ -15,16 +15,20 @@ def test_timestamp # millisecond accuracy time = Time.at(123456, 654321) - ts.from_time(time) + ts = Google::Protobuf::Timestamp.from_time(time) assert_equal 123456, ts.seconds assert_equal 654321000, ts.nanos assert_equal time, ts.to_time # nanosecond accuracy time = Time.at(123456, Rational(654321321, 1000)) - ts.from_time(time) + ts = Google::Protobuf::Timestamp.from_time(time) assert_equal 654321321, ts.nanos assert_equal time, ts.to_time + + # Instance method returns the same value as class method + assert_equal Google::Protobuf::Timestamp.new.from_time(time), + Google::Protobuf::Timestamp.from_time(time) end def test_duration