Sha256: e960f9ebe68fc59e9606f88c9feafbf24b6a5091e715afcf2dc177b7c147dd00

Contents?: true

Size: 1.57 KB

Versions: 24

Compression:

Stored size: 1.57 KB

Contents

require 'oauth/request_proxy/base'
# em-http also uses adddressable so there is no need to require uri.
require 'em-http'
require 'cgi'

module OAuth::RequestProxy::EventMachine
  class HttpRequest < OAuth::RequestProxy::Base

    # A Proxy for use when you need to sign EventMachine::HttpClient instances.
    # It needs to be called once the client is construct but before data is sent.
    # Also see oauth/client/em-http
    proxies ::EventMachine::HttpClient

    # Request in this con

    def method
      request.method
    end

    def uri
      request.normalize_uri.to_s
    end

    def parameters
      if options[:clobber_request]
        options[:parameters]
      else
        all_parameters
      end
    end

    protected

    def all_parameters
      merged_parameters({}, post_parameters, query_parameters, options[:parameters])
    end

    def query_parameters
      CGI.parse(request.normalize_uri.query.to_s)
    end

    def post_parameters
      headers = request.options[:head] || {}
      form_encoded = headers['Content-Type'].to_s.downcase.start_with?("application/x-www-form-urlencoded")
      if ['POST', 'PUT'].include?(method) && form_encoded
        CGI.parse(request.normalize_body.to_s)
      else
        {}
      end
    end

    def merged_parameters(params, *extra_params)
      extra_params.compact.each do |params_pairs|
        params_pairs.each_pair do |key, value|
          if params.has_key?(key)
            params[key] += value
          else
            params[key] = [value].flatten
          end
        end
      end
      params
    end

  end
end

Version data entries

24 entries across 21 versions & 5 rubygems

Version Path
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/oauth-0.5.6/lib/oauth/request_proxy/em_http_request.rb
oauth-0.5.6 lib/oauth/request_proxy/em_http_request.rb
oauth-0.5.5 lib/oauth/request_proxy/em_http_request.rb
tdiary-5.0.8 vendor/bundle/gems/oauth-0.5.4/lib/oauth/request_proxy/em_http_request.rb
oauth-0.5.4 lib/oauth/request_proxy/em_http_request.rb
tdiary-5.0.5 vendor/bundle/gems/oauth-0.5.3/lib/oauth/request_proxy/em_http_request.rb
tdiary-5.0.5 vendor/bundle/gems/tdiary-5.0.4/vendor/bundle/gems/oauth-0.5.1/lib/oauth/request_proxy/em_http_request.rb
tdiary-5.0.5 vendor/bundle/gems/oauth-0.5.1/lib/oauth/request_proxy/em_http_request.rb
oauth-0.5.3 lib/oauth/request_proxy/em_http_request.rb
oauth-0.5.2 lib/oauth/request_proxy/em_http_request.rb
tdiary-5.0.4 vendor/bundle/gems/oauth-0.5.1/lib/oauth/request_proxy/em_http_request.rb
oauth-0.5.1 lib/oauth/request_proxy/em_http_request.rb
oauth-0.5.0 lib/oauth/request_proxy/em_http_request.rb
tdiary-4.2.1 vendor/bundle/ruby/2.2.0/gems/oauth-0.4.7/lib/oauth/request_proxy/em_http_request.rb
tdiary-4.2.1 vendor/bundle/ruby/2.3.0/gems/oauth-0.4.7/lib/oauth/request_proxy/em_http_request.rb
oauth-ap-0.4.8 lib/oauth/request_proxy/em_http_request.rb
oauth-instructure-0.4.10 lib/oauth/request_proxy/em_http_request.rb
oauth_weshays-0.4.8.pre2 lib/oauth/request_proxy/em_http_request.rb
oauth_weshays-0.4.8.pre lib/oauth/request_proxy/em_http_request.rb
oauth-instructure-0.4.9 lib/oauth/request_proxy/em_http_request.rb