From d0535cc09e6eac1bddddd51c20b5738c0e841765 Mon Sep 17 00:00:00 2001 From: Harshit Chopra Date: Fri, 25 Aug 2017 12:11:15 -0700 Subject: Adds support for proto2 syntax for Ruby gem. This change only adds basic proto2 support without advanced features like extensions, custom options, maps, etc. The protoc binary now generates ruby code for proto2 syntax. However, for now, it is restricted to proto2 files without advanced features like extensions, in which case it still errors out. This change also modifies the DSL to add proto messages to the DescriptorPool. There is a new DSL Builder#add_file to create a new FileDescriptor. With this, the generated ruby DSL looks something like: Google::Protobuf::DescriptorPool.generated_pool.build do add_file "test.proto" do add_message "foo" do optional :val, :int32, 1 end end end --- ruby/tests/generated_code_proto2_test.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 ruby/tests/generated_code_proto2_test.rb (limited to 'ruby/tests/generated_code_proto2_test.rb') diff --git a/ruby/tests/generated_code_proto2_test.rb b/ruby/tests/generated_code_proto2_test.rb new file mode 100644 index 00000000..e988abd0 --- /dev/null +++ b/ruby/tests/generated_code_proto2_test.rb @@ -0,0 +1,21 @@ +#!/usr/bin/ruby + +# generated_code.rb is in the same directory as this test. +$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) + +require 'generated_code_proto2_pb' +require 'test_import_proto2_pb' +require 'test_ruby_package_proto2_pb' +require 'test/unit' + +class GeneratedCodeProto2Test < Test::Unit::TestCase + def test_generated_msg + # just test that we can instantiate the message. The purpose of this test + # is to ensure that the output of the code generator is valid Ruby and + # successfully creates message definitions and classes, not to test every + # aspect of the extension (basic.rb is for that). + m = A::B::Proto2::TestMessage.new() + m2 = FooBar::Proto2::TestImportedMessage.new() + m3 = A::B::Proto2::TestRubyPackageMessage.new() + end +end -- cgit v1.2.3