class GRPCWeb::Client

GRPC Client implementation Example usage:

client = GRPCWeb::Client.new(“localhost:3000/grpc”, HelloService::Service) client.say_hello(name: 'James')

Attributes

base_url[RW]
service_interface[RW]

Public Class Methods

new(base_url, service_interface) click to toggle source
# File lib/grpc_web/client/client.rb, line 14
def initialize(base_url, service_interface)
  self.base_url = base_url
  self.service_interface = service_interface

  service_interface.rpc_descs.each do |rpc_method, rpc_desc|
    define_rpc_method(rpc_method, rpc_desc)
  end
end

Private Instance Methods

define_rpc_method(rpc_method, rpc_desc) click to toggle source
# File lib/grpc_web/client/client.rb, line 27
def define_rpc_method(rpc_method, rpc_desc)
  ruby_method = ::GRPC::GenericService.underscore(rpc_method.to_s).to_sym
  define_singleton_method(ruby_method) do |params = {}|
    uri = endpoint_uri(rpc_desc)
    ::GRPCWeb::ClientExecutor.request(uri, rpc_desc, params)
  end
end
endpoint_uri(rpc_desc) click to toggle source
# File lib/grpc_web/client/client.rb, line 35
def endpoint_uri(rpc_desc)
  URI(File.join(base_url, service_interface.service_name, rpc_desc.name.to_s))
end