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