class OAuth::Signature::Base
Attributes
consumer_secret[R]
options[RW]
request[R]
token_secret[R]
Public Class Methods
implements(signature_method = nil)
click to toggle source
# File lib/oauth/signature/base.rb 16 def self.implements(signature_method = nil) 17 return @implements if signature_method.nil? 18 19 @implements = signature_method 20 OAuth::Signature.available_methods[@implements] = self 21 end
new(request, options = {}) { |arity == 1| ... }
click to toggle source
# File lib/oauth/signature/base.rb 23 def initialize(request, options = {}, &block) 24 raise TypeError unless request.is_a?(OAuth::RequestProxy::Base) 25 26 @request = request 27 @options = options 28 29 ## consumer secret was determined beforehand 30 31 @consumer_secret = options[:consumer].secret if options[:consumer] 32 33 # presence of :consumer_secret option will override any Consumer that's provided 34 @consumer_secret = options[:consumer_secret] if options[:consumer_secret] 35 36 ## token secret was determined beforehand 37 38 @token_secret = options[:token].secret if options[:token] 39 40 # presence of :token_secret option will override any Token that's provided 41 @token_secret = options[:token_secret] if options[:token_secret] 42 43 # override secrets based on the values returned from the block (if any) 44 if block 45 # consumer secret and token secret need to be looked up based on pieces of the request 46 secrets = yield (block.arity == 1) ? request : [token, consumer_key, nonce, request.timestamp] 47 if secrets.is_a?(Array) && secrets.size == 2 48 @token_secret = secrets[0] 49 @consumer_secret = secrets[1] 50 end 51 end 52 end
Public Instance Methods
==(other)
click to toggle source
# File lib/oauth/signature/base.rb 58 def ==(other) 59 check = signature.bytesize ^ other.bytesize 60 signature.bytes.zip(other.bytes) { |x, y| check |= x ^ y.to_i } 61 check.zero? 62 end
body_hash()
click to toggle source
# File lib/oauth/signature/base.rb 72 def body_hash 73 raise_instantiation_error 74 end
signature()
click to toggle source
# File lib/oauth/signature/base.rb 54 def signature 55 Base64.encode64(digest).chomp.delete("\n") 56 end
signature_base_string()
click to toggle source
# File lib/oauth/signature/base.rb 68 def signature_base_string 69 request.signature_base_string 70 end
verify()
click to toggle source
# File lib/oauth/signature/base.rb 64 def verify 65 self == request.signature 66 end
Private Instance Methods
consumer_key()
click to toggle source
# File lib/oauth/signature/base.rb 82 def consumer_key 83 request.consumer_key 84 end
digest()
click to toggle source
# File lib/oauth/signature/base.rb 94 def digest 95 raise_instantiation_error 96 end
nonce()
click to toggle source
# File lib/oauth/signature/base.rb 86 def nonce 87 request.nonce 88 end
raise_instantiation_error()
click to toggle source
# File lib/oauth/signature/base.rb 98 def raise_instantiation_error 99 raise NotImplementedError, "Cannot instantiate #{self.class.name} class directly." 100 end
secret()
click to toggle source
# File lib/oauth/signature/base.rb 90 def secret 91 "#{escape(consumer_secret)}&#{escape(token_secret)}" 92 end
token()
click to toggle source
# File lib/oauth/signature/base.rb 78 def token 79 request.token 80 end