class Signet::OAuth1::Credential
Attributes
key[RW]
secret[RW]
Public Class Methods
new(*args)
click to toggle source
Creates a token object from a key and secret.
@example
Signet::OAuth1::Credential.new( :key => "dpf43f3p2l4k3l03", :secret => "kd94hf93k423kf44" )
@example
Signet::OAuth1::Credential.new([ ["oauth_token", "dpf43f3p2l4k3l03"], ["oauth_token_secret", "kd94hf93k423kf44"] ])
@example
Signet::OAuth1::Credential.new( "dpf43f3p2l4k3l03", "kd94hf93k423kf44" )
# File lib/signet/oauth_1/credential.rb, line 37 def initialize *args # We want to be particularly flexible in how we initialize a token # object for maximum interoperability. However, this flexibility # means we need to be careful about returning an unexpected value for # key or secret to avoid difficult-to-debug situations. Thus lots # of type-checking. # This is cheaper than coercing to some kind of Hash with # indifferent access. Also uglier. key_from_hash = lambda do |parameters| parameters["oauth_token"] || parameters[:oauth_token] || parameters["key"] || parameters[:key] end secret_from_hash = lambda do |parameters| parameters["oauth_token_secret"] || parameters[:oauth_token_secret] || parameters["secret"] || parameters[:secret] end if args.first.respond_to? :to_hash parameters = args.first.to_hash @key = key_from_hash.call parameters @secret = secret_from_hash.call parameters unless @key && @secret raise ArgumentError, "Could not find both key and secret in #{hash.inspect}." end else # Normalize to an Array if !args.first.is_a?(String) && !args.first.respond_to?(:to_str) && args.first.is_a?(Enumerable) # We need to special-case strings since they're technically # Enumerable objects. args = args.first.to_a elsif args.first.respond_to? :to_ary args = args.first.to_ary end if args.all? { |value| value.is_a? Array } parameters = args.each_with_object({}) { |(k, v), h| h[k] = v; } @key = key_from_hash.call parameters @secret = secret_from_hash.call parameters elsif args.size == 2 @key, @secret = args else raise ArgumentError, "wrong number of arguments (#{args.size} for 2)" end end raise TypeError, "Expected String, got #{@key.class}." unless @key.respond_to? :to_str @key = @key.to_str raise TypeError, "Expected String, got #{@secret.class}." unless @secret.respond_to? :to_str @secret = @secret.to_str end
Public Instance Methods
==(other)
click to toggle source
# File lib/signet/oauth_1/credential.rb, line 105 def == other if other.respond_to?(:key) && other.respond_to?(:secret) key == other.key && secret == other.secret else false end end
to_hash()
click to toggle source
# File lib/signet/oauth_1/credential.rb, line 97 def to_hash { "oauth_token" => key, "oauth_token_secret" => secret } end
Also aliased as: to_h