class Rebels::RailsAdapters::RequestResponseAdapter

Public Class Methods

new(rails_adapter, rebel_app) click to toggle source
# File lib/rebels/rails_adapters/request_response_adapter.rb, line 2
def initialize(rails_adapter, rebel_app)
  @rails_adapter = rails_adapter
  @rebel_app = rebel_app
end

Public Instance Methods

method_missing(meth, *args, &blk) click to toggle source
# File lib/rebels/rails_adapters/request_response_adapter.rb, line 7
def method_missing(meth, *args, &blk)
  controller = args.first
  req = Rebels::Values::Request.with(params: controller.params)
  response = @rebel_app.send(meth, req)
  # @rails_adapter
  # response.session.each do |k,v|
  #   @controller.session[k] = v
  # end

  # response.template_vars.each do |k,v|
  #   @controller.instance_variable_set("@#{k}".to_sym, v)
  # end

  ret = if response.redirect_path
  #   args = Array(response.redirect_path)
  #   meth = args.shift
  #   redir_args = if args.last.is_a? Hash
  #                  args.pop
  #                else
  #                  {}
  #                end
  #   @controller.redirect_to meth, redir_args
  elsif response.json
    @rails_adapter.render json: response.json, status: response.status
  elsif response.text
  #   @controller.render text: response.text, status: response.status
  elsif response.template_name
  #   @controller.render response.template_name, status: response.status, layout: response.layout
  elsif response.status
    @rails_adapter.head response.status
  else
    raise 'no good' + response.inspect
  end
  # Rails.logger.info("response: #{ret}")
  ret

end