Class: Spikard::Grpc::Service
- Inherits:
-
Object
- Object
- Spikard::Grpc::Service
- Defined in:
- lib/spikard/grpc.rb
Overview
Service registry for gRPC handlers
Manages registration and lookup of gRPC service handlers. Handlers are registered by service name and method.
Instance Method Summary collapse
-
#get_handler(service_name) ⇒ Spikard::Grpc::Handler?
Get a handler by service name.
-
#initialize ⇒ Service
constructor
A new instance of Service.
-
#register_handler(service_name, handler) ⇒ Object
Register a gRPC handler for a service.
-
#registered?(service_name) ⇒ Boolean
Check if a service is registered.
-
#service_names ⇒ Array<String>
Get all registered service names.
Constructor Details
#initialize ⇒ Service
Returns a new instance of Service.
141 142 143 |
# File 'lib/spikard/grpc.rb', line 141 def initialize @handlers = {} end |
Instance Method Details
#get_handler(service_name) ⇒ Spikard::Grpc::Handler?
Get a handler by service name
162 163 164 |
# File 'lib/spikard/grpc.rb', line 162 def get_handler(service_name) @handlers[service_name] end |
#register_handler(service_name, handler) ⇒ Object
Register a gRPC handler for a service
150 151 152 153 154 155 156 |
# File 'lib/spikard/grpc.rb', line 150 def register_handler(service_name, handler) raise ArgumentError, 'Service name cannot be empty' if service_name.nil? || service_name.empty? raise ArgumentError, 'Handler must respond to :handle_request' unless handler.respond_to?(:handle_request) @handlers[service_name] = handler end |
#registered?(service_name) ⇒ Boolean
Check if a service is registered
177 178 179 |
# File 'lib/spikard/grpc.rb', line 177 def registered?(service_name) @handlers.key?(service_name) end |
#service_names ⇒ Array<String>
Get all registered service names
169 170 171 |
# File 'lib/spikard/grpc.rb', line 169 def service_names @handlers.keys end |