class TwirpRails::ErrorHandlingFactory::ClientProxy

Attributes

client[R]
translator_class[R]

Public Class Methods

new(client, translator_class) click to toggle source
# File lib/twirp_rails/error_handling/error_handling_factory.rb, line 35
def initialize(client, translator_class)
  @client = client
  @translator_class = translator_class
end

Public Instance Methods

method_missing(method, *args) click to toggle source

rubocop:disable Style/MethodMissingSuper

# File lib/twirp_rails/error_handling/error_handling_factory.rb, line 50
def method_missing(method, *args)
  if method =~ /!$/
    # when we call a bang version of client method - raise exception translated from error
    method = method[0..-2]
    raise_on_error client.public_send(method, *args)
  else
    client.public_send method, *args
  end
end
raise_on_error(twirp_result) click to toggle source
# File lib/twirp_rails/error_handling/error_handling_factory.rb, line 40
def raise_on_error(twirp_result)
  if twirp_result.error
    exception = translator_class.twirp_to_exception(twirp_result.error, client)
    raise exception
  else
    twirp_result
  end
end
respond_to_missing?(method, include_all = false) click to toggle source

rubocop:enable Style/MethodMissingSuper

# File lib/twirp_rails/error_handling/error_handling_factory.rb, line 61
def respond_to_missing?(method, include_all = false)
  client.respond_to?(method, include_all)
end