class Lnrpc::GrpcWrapper

Attributes

grpc[R]
service[R]

Public Class Methods

new(service:, grpc:) click to toggle source
# File lib/lnrpc/grpc_wrapper.rb, line 5
def initialize(service:, grpc:)
  @grpc = grpc
  @service = service
end

Public Instance Methods

inspect() click to toggle source
# File lib/lnrpc/grpc_wrapper.rb, line 21
def inspect
  "#{self} @grpc=\"#{grpc}\""
end
method_missing(m, *args, &block) click to toggle source
Calls superclass method
# File lib/lnrpc/grpc_wrapper.rb, line 10
def method_missing(m, *args, &block)
  if grpc.respond_to?(m)
    params = args[0]

    args[0] = params.nil? ? request_class_for(m).new : request_class_for(m).new(params)
    grpc.send(m, *args, &block)
  else
    super
  end
end

Private Instance Methods

camelize(name) click to toggle source
# File lib/lnrpc/grpc_wrapper.rb, line 34
def camelize(name)
  str = name.to_s
  separators = ['_', '\s']
  separators.each do |s|
    str = str.gsub(/(?:#{s}+)([a-z])/) { $1.upcase }
  end
  str.gsub(/(\A|\s)([a-z])/) { $1 + $2.upcase }
end
request_class_for(method_name) click to toggle source
# File lib/lnrpc/grpc_wrapper.rb, line 27
def request_class_for(method_name)
  rpc_desc = service.rpc_descs[camelize(method_name).to_sym]
  raise "Request class not found for: #{method_name}" unless rpc_desc

  rpc_desc.input
end