Commit 39c09478 authored by Joe Bolinger's avatar Joe Bolinger Committed by Paul Yang

implement to_s for message types (#5710)

parent 7fdc45a8
...@@ -626,6 +626,7 @@ VALUE build_class_from_descriptor(Descriptor* desc) { ...@@ -626,6 +626,7 @@ VALUE build_class_from_descriptor(Descriptor* desc) {
rb_define_method(klass, "to_h", Message_to_h, 0); rb_define_method(klass, "to_h", Message_to_h, 0);
rb_define_method(klass, "to_hash", Message_to_h, 0); rb_define_method(klass, "to_hash", Message_to_h, 0);
rb_define_method(klass, "inspect", Message_inspect, 0); rb_define_method(klass, "inspect", Message_inspect, 0);
rb_define_method(klass, "to_s", Message_inspect, 0);
rb_define_method(klass, "[]", Message_index, 1); rb_define_method(klass, "[]", Message_index, 1);
rb_define_method(klass, "[]=", Message_index_set, 2); rb_define_method(klass, "[]=", Message_index_set, 2);
rb_define_singleton_method(klass, "decode", Message_decode, 1); rb_define_singleton_method(klass, "decode", Message_decode, 1);
......
...@@ -103,7 +103,7 @@ module CommonTests ...@@ -103,7 +103,7 @@ module CommonTests
assert_equal 3, m.repeated_msg.first.sub_child.optional_int32 assert_equal 3, m.repeated_msg.first.sub_child.optional_int32
end end
def test_inspect def test_inspect_eq_to_s
m = proto_module::TestMessage.new( m = proto_module::TestMessage.new(
:optional_int32 => -42, :optional_int32 => -42,
:optional_enum => :A, :optional_enum => :A,
...@@ -111,10 +111,12 @@ module CommonTests ...@@ -111,10 +111,12 @@ module CommonTests
:repeated_string => ["hello", "there", "world"]) :repeated_string => ["hello", "there", "world"])
expected = "<#{proto_module}::TestMessage: optional_int32: -42, optional_int64: 0, optional_uint32: 0, optional_uint64: 0, optional_bool: false, optional_float: 0.0, optional_double: 0.0, optional_string: \"\", optional_bytes: \"\", optional_msg: <#{proto_module}::TestMessage2: foo: 0>, optional_enum: :A, repeated_int32: [], repeated_int64: [], repeated_uint32: [], repeated_uint64: [], repeated_bool: [], repeated_float: [], repeated_double: [], repeated_string: [\"hello\", \"there\", \"world\"], repeated_bytes: [], repeated_msg: [], repeated_enum: []>" expected = "<#{proto_module}::TestMessage: optional_int32: -42, optional_int64: 0, optional_uint32: 0, optional_uint64: 0, optional_bool: false, optional_float: 0.0, optional_double: 0.0, optional_string: \"\", optional_bytes: \"\", optional_msg: <#{proto_module}::TestMessage2: foo: 0>, optional_enum: :A, repeated_int32: [], repeated_int64: [], repeated_uint32: [], repeated_uint64: [], repeated_bool: [], repeated_float: [], repeated_double: [], repeated_string: [\"hello\", \"there\", \"world\"], repeated_bytes: [], repeated_msg: [], repeated_enum: []>"
assert_equal expected, m.inspect assert_equal expected, m.inspect
assert_equal expected, m.to_s
m = proto_module::OneofMessage.new(:b => -42) m = proto_module::OneofMessage.new(:b => -42)
expected = "<#{proto_module}::OneofMessage: a: \"\", b: -42, c: nil, d: :Default>" expected = "<#{proto_module}::OneofMessage: a: \"\", b: -42, c: nil, d: :Default>"
assert_equal expected, m.inspect assert_equal expected, m.inspect
assert_equal expected, m.to_s
end end
def test_hash def test_hash
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment