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