module Route
Provides operations for parsing and building gRPC request paths.
Definitions
def self.parse(path)
Parse a gRPC request path into its service and method names.
Signature
-
parameter
pathString The gRPC request path.
-
returns
Array(String) The service and method names.
-
raises
ArgumentError If the path does not contain valid protobuf service and method names.
Implementation
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
def self.build(service_name, method_name)
Build a gRPC request path from its service and method names.
Signature
-
parameter
service_nameString The fully qualified service name.
-
parameter
method_nameString The method name.
-
returns
String The gRPC request path.
-
raises
ArgumentError If either component is not a valid protobuf service or method name.
Implementation
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