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