Module: Protocol::GRPC::Route

Defined in:
lib/protocol/grpc/route.rb

Overview

Provides operations for parsing and building gRPC request paths.

Class Method Summary collapse

Class Method Details

.build(service_name, method_name) ⇒ Object

Build a gRPC request path from its service and method names.



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/protocol/grpc/route.rb', line 35

def self.build(service_name, method_name)
	unless service_name.is_a?(String) && SERVICE_PATTERN.match?(service_name)
		raise ArgumentError, "Invalid gRPC service name: #{service_name.inspect}"
	end
	
	unless method_name.is_a?(String) && METHOD_PATTERN.match?(method_name)
		raise ArgumentError, "Invalid gRPC method name: #{method_name.inspect}"
	end
	
	"/#{service_name}/#{method_name}"
end

.parse(path) ⇒ Object

Parse a gRPC request path into its service and method names.



20
21
22
23
24
25
26
27
28
# File 'lib/protocol/grpc/route.rb', line 20

def self.parse(path)
	match = PATTERN.match(path) if path.is_a?(String)
	
	unless match
		raise ArgumentError, "Invalid gRPC route: #{path.inspect}"
	end
	
	[match[1], match[2]]
end