class OAuth::Client::Helper

Attributes

options[R]

Public Class Methods

new(request, options = {}) click to toggle source
   # File lib/oauth/client/helper.rb
14 def initialize(request, options = {})
15   @request = request
16   @options = options
17   @options[:signature_method] ||= "HMAC-SHA1"
18 end

Public Instance Methods

amend_user_agent_header(headers) click to toggle source
   # File lib/oauth/client/helper.rb
77 def amend_user_agent_header(headers)
78   @oauth_ua_string ||= "OAuth gem v#{OAuth::Version::VERSION}"
79   # Net::HTTP in 1.9 appends Ruby
80   if headers["User-Agent"] && headers["User-Agent"] != "Ruby"
81     headers["User-Agent"] += " (#{@oauth_ua_string})"
82   else
83     headers["User-Agent"] = @oauth_ua_string
84   end
85 end
hash_body() click to toggle source
   # File lib/oauth/client/helper.rb
73 def hash_body
74   @options[:body_hash] = OAuth::Signature.body_hash(@request, parameters: oauth_parameters)
75 end
header() click to toggle source
   # File lib/oauth/client/helper.rb
87 def header
88   parameters = oauth_parameters
89   parameters["oauth_signature"] = signature(options.merge(parameters: parameters))
90 
91   header_params_str = parameters.sort.map { |k, v| "#{k}=\"#{escape(v)}\"" }.join(", ")
92 
93   realm = "realm=\"#{options[:realm]}\", " if options[:realm]
94   "OAuth #{realm}#{header_params_str}"
95 end
nonce() click to toggle source
   # File lib/oauth/client/helper.rb
22 def nonce
23   options[:nonce] ||= generate_key
24 end
oauth_parameters() click to toggle source
   # File lib/oauth/client/helper.rb
30 def oauth_parameters
31   out = {
32     "oauth_body_hash" => options[:body_hash],
33     "oauth_callback" => options[:oauth_callback],
34     "oauth_consumer_key" => options[:consumer].key,
35     "oauth_token" => options[:token] ? options[:token].token : "",
36     "oauth_signature_method" => options[:signature_method],
37     "oauth_timestamp" => timestamp,
38     "oauth_nonce" => nonce,
39     "oauth_verifier" => options[:oauth_verifier],
40     "oauth_version" => options[:oauth_version] || "1.0",
41     "oauth_session_handle" => options[:oauth_session_handle],
42   }
43   allowed_empty_params = options[:allow_empty_params]
44   if allowed_empty_params != true && !allowed_empty_params.is_a?(Array)
45     allowed_empty_params = (allowed_empty_params == false) ? [] : [allowed_empty_params]
46   end
47   out.select! { |k, v| v.to_s != "" || allowed_empty_params == true || allowed_empty_params.include?(k) }
48   out
49 end
parameters() click to toggle source
   # File lib/oauth/client/helper.rb
97 def parameters
98   OAuth::RequestProxy.proxy(@request).parameters
99 end
parameters_with_oauth() click to toggle source
    # File lib/oauth/client/helper.rb
101 def parameters_with_oauth
102   oauth_parameters.merge(parameters)
103 end
signature(extra_options = {}) click to toggle source
   # File lib/oauth/client/helper.rb
51 def signature(extra_options = {})
52   OAuth::Signature.sign(@request, {
53     uri: options[:request_uri],
54     consumer: options[:consumer],
55     token: options[:token],
56     unsigned_parameters: options[:unsigned_parameters],
57   }.merge(extra_options))
58 end
signature_base_string(extra_options = {}) click to toggle source
   # File lib/oauth/client/helper.rb
60 def signature_base_string(extra_options = {})
61   OAuth::Signature.signature_base_string(@request, {
62     uri: options[:request_uri],
63     consumer: options[:consumer],
64     token: options[:token],
65     parameters: oauth_parameters,
66   }.merge(extra_options))
67 end
timestamp() click to toggle source
   # File lib/oauth/client/helper.rb
26 def timestamp
27   options[:timestamp] ||= generate_timestamp
28 end
token_request?() click to toggle source
   # File lib/oauth/client/helper.rb
69 def token_request?
70   @options[:token_request].eql?(true)
71 end