Module: Alain::Util

Included in:
Driver, Proto, SvcCode
Defined in:
lib/alain/util.rb

Class Method Summary collapse

Class Method Details

.grpc_method(method, request, response) ⇒ Object



7
8
9
10
11
12
13
14
# File 'lib/alain/util.rb', line 7

def grpc_method method, request, response
  "    async fn \#{snake_case(method)}(&self, request: Request<\#{namespace(request)}>) -> Result<Response<\#{namespace(response)}>, Status> {\n            let message: \#{namespace(request)} = request.into_inner();\n            Ok(Response::new(\#{namespace(response)} { }))\n        }\n  EOS\nend\n"

.namespace(ns = @package) ⇒ Object



16
17
18
# File 'lib/alain/util.rb', line 16

def namespace(ns = @package)
  ns.gsub('.', '::')
end

.snake_case(str) ⇒ Object



20
21
22
23
# File 'lib/alain/util.rb', line 20

def snake_case(str)
  str.gsub(/([a-z\d])([A-Z])/, '\1_\2')
    .downcase
end