diff --git a/src/compiler/ruby_generator.cc b/src/compiler/ruby_generator.cc index 1501c3f3e01b050ae2b2be9afbb3d64e68e859de..6e5419cb47bc8e70be87fbebdc5c9bc9414f2c99 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(); }