Sha256: d8dcaae196ca288f82159a28f2e9507bdfb003f2cab3e3e52c472cead07f5459
Contents?: true
Size: 1.6 KB
Versions: 1
Compression:
Stored size: 1.6 KB
Contents
require 'json' class Rails::ExtJS::Direct::RemotingProvider def initialize(app, rpath) @app = app @router_path = rpath @logger = RAILS_DEFAULT_LOGGER @params = {} end def call(env) @logger.info('---------------- PARAMS ---------------------') #@logger.info(env.to_yaml) @logger.info(env["action_controller.request.request_parameters"].to_yaml) if env["PATH_INFO"].match("^"+@router_path) parse_params(env) @logger.info('env: ' + env.to_yaml) output = [] ["company", "users"].each do |c| env["PATH_INFO"] = "/#{c}/load" env["REQUEST_URI"] = "/#{c}/load" status, headers, response = @app.call(env) output << response.body @logger.info('---------------------- RESPONSE ----------------------------') @logger.info(response.body) end res = output.join(',') res = "[" + res + "]" if output.length > 1 #status, headers, response = @app.call(env) [200, {"Content-Type" => "text/html"}, res] else @app.call(env) end end def parse_params(env) @params = env["REQUEST_METHOD"] == "GET" ? CGI.parse(env["QUERY_STRING"]) : env["rack.request.form_hash"] #@params.each do |k,v| # @params[k] = @params[k].first #end #@params["data"] = JSON.parse(@params["data"]) if @params["data"] #@logger.info('params: ' + @params.to_yaml) #env["QUERY_STRING"] = {} end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails-extjs-direct-0.0.2 | lib/rails-extjs-direct/rack/remoting_provider.rb |