Class: OAuth::Signature::Base
- Inherits:
-
Object
- Object
- OAuth::Signature::Base
- Includes:
- Helper
- Defined in:
- lib/oauth/signature/base.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#consumer_secret ⇒ Object
readonly
Returns the value of attribute consumer_secret.
-
#options ⇒ Object
Returns the value of attribute options.
-
#request ⇒ Object
readonly
Returns the value of attribute request.
-
#token_secret ⇒ Object
readonly
Returns the value of attribute token_secret.
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object
- #body_hash ⇒ Object
-
#initialize(request, options = {}, &block) ⇒ Base
constructor
A new instance of Base.
- #signature ⇒ Object
- #signature_base_string ⇒ Object
- #verify ⇒ Object
Methods included from Helper
_escape, escape, generate_key, generate_timestamp, normalize, normalize_nested_query, parse_header, stringify_keys, unescape
Constructor Details
#initialize(request, options = {}, &block) ⇒ Base
Returns a new instance of Base.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/oauth/signature/base.rb', line 23 def initialize(request, = {}, &block) raise TypeError unless request.is_a?(OAuth::RequestProxy::Base) @request = request @options = ## consumer secret was determined beforehand @consumer_secret = [:consumer].secret if [:consumer] # presence of :consumer_secret option will override any Consumer that's provided if [:consumer_secret] @consumer_secret = [:consumer_secret] end ## token secret was determined beforehand @token_secret = [:token].secret if [:token] # presence of :token_secret option will override any Token that's provided @token_secret = [:token_secret] if [:token_secret] # override secrets based on the values returned from the block (if any) if block # consumer secret and token secret need to be looked up based on pieces of the request secrets = yield block.arity == 1 ? request : [token, consumer_key, nonce, request.] if secrets.is_a?(Array) && secrets.size == 2 @token_secret = secrets[0] @consumer_secret = secrets[1] end end end |
Instance Attribute Details
#consumer_secret ⇒ Object (readonly)
Returns the value of attribute consumer_secret.
14 15 16 |
# File 'lib/oauth/signature/base.rb', line 14 def consumer_secret @consumer_secret end |
#options ⇒ Object
Returns the value of attribute options.
13 14 15 |
# File 'lib/oauth/signature/base.rb', line 13 def @options end |
#request ⇒ Object (readonly)
Returns the value of attribute request.
14 15 16 |
# File 'lib/oauth/signature/base.rb', line 14 def request @request end |
#token_secret ⇒ Object (readonly)
Returns the value of attribute token_secret.
14 15 16 |
# File 'lib/oauth/signature/base.rb', line 14 def token_secret @token_secret end |
Class Method Details
.implements(signature_method = nil) ⇒ Object
16 17 18 19 20 21 |
# File 'lib/oauth/signature/base.rb', line 16 def self.implements(signature_method = nil) return @implements if signature_method.nil? @implements = signature_method OAuth::Signature.available_methods[@implements] = self end |
Instance Method Details
#==(other) ⇒ Object
60 61 62 63 64 |
# File 'lib/oauth/signature/base.rb', line 60 def ==(other) check = signature.bytesize ^ other.bytesize signature.bytes.zip(other.bytes) { |x, y| check |= x ^ y.to_i } check.zero? end |
#body_hash ⇒ Object
74 75 76 |
# File 'lib/oauth/signature/base.rb', line 74 def body_hash raise_instantiation_error end |
#signature ⇒ Object
56 57 58 |
# File 'lib/oauth/signature/base.rb', line 56 def signature Base64.encode64(digest).chomp.delete("\n") end |
#signature_base_string ⇒ Object
70 71 72 |
# File 'lib/oauth/signature/base.rb', line 70 def signature_base_string request.signature_base_string end |
#verify ⇒ Object
66 67 68 |
# File 'lib/oauth/signature/base.rb', line 66 def verify self == request.signature end |