Module: Alain::Util
Class Method Summary collapse
- .grpc_method(method, request, response) ⇒ Object
- .namespace(ns = @package) ⇒ Object
- .snake_case(str) ⇒ Object
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 <<~EOS async fn #{snake_case(method)}(&self, request: Request<#{namespace(request)}>) -> Result<Response<#{namespace(response)}>, Status> { let message: #{namespace(request)} = request.into_inner(); Ok(Response::new(#{namespace(response)} { })) } EOS end |
.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 |