class OAuth1::Helper
Attributes
url_params[R]
Public Class Methods
new(method, url, params, options)
click to toggle source
# File lib/oauth1/helper.rb, line 12 def initialize(method, url, params, options) options.reverse_update({ version: "1.0", signature_method: 'HMAC-SHA1', timestamp: Time.now.to_i.to_s, nonce: SecureRandom.uuid }) @consumer_secret = options.delete(:consumer_secret) @token_secret = options.delete(:token_secret) @url_params = params.merge(prepend_oauth_to_key(options)) @method = method.to_s.upcase @url = Addressable::URI.parse(url) end
Public Instance Methods
full_url()
click to toggle source
# File lib/oauth1/helper.rb, line 33 def full_url append_signature_to_params url_with_params.to_s end
signature_base()
click to toggle source
# File lib/oauth1/helper.rb, line 27 def signature_base @url_params.delete(:oauth_signature) [@method, @url.to_s, url_with_params.query].map{|v| CGI.escape(v) }.join('&') end
Private Instance Methods
append_signature_to_params()
click to toggle source
# File lib/oauth1/helper.rb, line 47 def append_signature_to_params @url_params[:oauth_signature] = hmac_sha1_signature(key, signature_base) end
hmac_sha1_signature(key, signature_string)
click to toggle source
# File lib/oauth1/helper.rb, line 55 def hmac_sha1_signature(key, signature_string) digest = OpenSSL::Digest.new('sha1') hmac = OpenSSL::HMAC.digest(digest, key, signature_string) Base64.encode64(hmac).chomp.gsub(/\n/, '') end
key()
click to toggle source
# File lib/oauth1/helper.rb, line 39 def key @token_secret ? "#{CGI.escape(@consumer_secret)}&#{CGI.escape(@token_secret)}" : "#{CGI.escape(@consumer_secret)}&" end
prepend_oauth_to_key(options)
click to toggle source
# File lib/oauth1/helper.rb, line 51 def prepend_oauth_to_key(options) Hash[options.map{|key, value| ["oauth_#{key}".to_sym, value]}] end
url_with_params()
click to toggle source
# File lib/oauth1/helper.rb, line 43 def url_with_params @url.dup.tap{|url| url.query_values = url_params} end