class TwirpHandler
Public Class Methods
new(controller:)
click to toggle source
class UnknownRpcError < StandardError; end
# File lib/rails_respond_to_pb/twirp_handler.rb, line 6 def initialize(controller:) @controller = controller end
Public Instance Methods
method_missing(method_name, *arguments, &_block)
click to toggle source
# File lib/rails_respond_to_pb/twirp_handler.rb, line 21 def method_missing(method_name, *arguments, &_block) dispatch method_name, arguments[0], arguments[1] end
respond_to_missing?(method_name, _include_private = false)
click to toggle source
# File lib/rails_respond_to_pb/twirp_handler.rb, line 25 def respond_to_missing?(method_name, _include_private = false) @controller.method_defined? method_name end
Private Instance Methods
dispatch(action, req, env)
click to toggle source
# File lib/rails_respond_to_pb/twirp_handler.rb, line 31 def dispatch(action, req, env) request = ActionDispatch::Request.new(env.delete(:rack_env)) req.to_h.each do |key, value| request.params[key] = value end response = ActionDispatch::Response.new @controller.dispatch(action, request, response) env[:output_class].decode(response.body) end