From d69c0d34da555e8a953bbf949b324e4ada633899 Mon Sep 17 00:00:00 2001
From: Alexander Polcyn <apolcyn@google.com>
Date: Mon, 3 Oct 2016 10:33:02 -0700
Subject: [PATCH] convert snake case protos package names to camel case in ruby
 modules

---
 src/compiler/ruby_generator.cc | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/compiler/ruby_generator.cc b/src/compiler/ruby_generator.cc
index 1501c3f3e0..6e5419cb47 100644
--- a/src/compiler/ruby_generator.cc
+++ b/src/compiler/ruby_generator.cc
@@ -115,6 +115,16 @@ void PrintService(const ServiceDescriptor *service, const grpc::string &package,
 
 }  // namespace
 
+grpc::string SnakeCaseToCamelCase(grpc::string input) {
+  grpc::string output;
+  std::vector<grpc::string> words = Split(input, '_');
+  for(size_t i = 0; i < words.size(); i++) {
+    output.append(CapitalizeFirst(words[i]));
+  }
+  return output;
+}
+
+
 grpc::string GetServices(const FileDescriptor *file) {
   grpc::string output;
   {
@@ -156,7 +166,7 @@ grpc::string GetServices(const FileDescriptor *file) {
     std::vector<grpc::string> modules = Split(file->package(), '.');
     for (size_t i = 0; i < modules.size(); ++i) {
       std::map<grpc::string, grpc::string> module_vars =
-          ListToDict({"module.name", CapitalizeFirst(modules[i]), });
+          ListToDict({"module.name", SnakeCaseToCamelCase(modules[i]), });
       out.Print(module_vars, "module $module.name$\n");
       out.Indent();
     }
-- 
GitLab