diff options
author | Harshit Chopra <harshit@squareup.com> | 2017-08-25 12:11:15 -0700 |
---|---|---|
committer | Harshit Chopra <harshit@squareup.com> | 2018-09-27 14:21:16 -0400 |
commit | d0535cc09e6eac1bddddd51c20b5738c0e841765 (patch) | |
tree | f712febe270ba656970f65b952114e14650103b6 /ruby/Rakefile | |
parent | 048f5c26a783f5f92061aec3aab19986e5c8d435 (diff) | |
download | protobuf-d0535cc09e6eac1bddddd51c20b5738c0e841765.tar.gz protobuf-d0535cc09e6eac1bddddd51c20b5738c0e841765.tar.bz2 protobuf-d0535cc09e6eac1bddddd51c20b5738c0e841765.zip |
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
Diffstat (limited to 'ruby/Rakefile')
-rw-r--r-- | ruby/Rakefile | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/ruby/Rakefile b/ruby/Rakefile index 013bc99a..f1c5bc8c 100644 --- a/ruby/Rakefile +++ b/ruby/Rakefile @@ -86,20 +86,45 @@ end # Proto for tests. genproto_output << "tests/generated_code.rb" +genproto_output << "tests/generated_code_proto2.rb" genproto_output << "tests/test_import.rb" +genproto_output << "tests/test_import_proto2.rb" genproto_output << "tests/test_ruby_package.rb" +genproto_output << "tests/test_ruby_package_proto2.rb" +genproto_output << "tests/basic_test.rb" +genproto_output << "tests/basic_test_proto2.rb" file "tests/generated_code.rb" => "tests/generated_code.proto" do |file_task| sh "../src/protoc --ruby_out=. tests/generated_code.proto" end +file "tests/generated_code_proto2.rb" => "tests/generated_code_proto2.proto" do |file_task| + sh "../src/protoc --ruby_out=. tests/generated_code_proto2.proto" +end + file "tests/test_import.rb" => "tests/test_import.proto" do |file_task| sh "../src/protoc --ruby_out=. tests/test_import.proto" end +file "tests/test_import_proto2.rb" => "tests/test_import_proto2.proto" do |file_task| + sh "../src/protoc --ruby_out=. tests/test_import_proto2.proto" +end + file "tests/test_ruby_package.rb" => "tests/test_ruby_package.proto" do |file_task| sh "../src/protoc --ruby_out=. tests/test_ruby_package.proto" end +file "tests/test_ruby_package_proto2.rb" => "tests/test_ruby_package_proto2.proto" do |file_task| + sh "../src/protoc --ruby_out=. tests/test_ruby_package_proto2.proto" +end + +file "tests/basic_test.rb" => "tests/basic_test.proto" do |file_task| + sh "../src/protoc --ruby_out=. tests/basic_test.proto" +end + +file "tests/basic_test_proto2.rb" => "tests/basic_test_proto2.proto" do |file_task| + sh "../src/protoc --ruby_out=. tests/basic_test_proto2.proto" +end + task :genproto => genproto_output task :clean do @@ -110,7 +135,7 @@ Gem::PackageTask.new(spec) do |pkg| end Rake::TestTask.new(:test => :build) do |t| - t.test_files = FileList["tests/*.rb"].exclude("tests/gc_test.rb") + t.test_files = FileList["tests/*.rb"].exclude("tests/gc_test.rb", "tests/common_tests.rb") end # gc_test needs to be split out to ensure the generated file hasn't been |