class Contacts::OAuthConsumer
Attributes
access_token[RW]
request_token[RW]
Public Class Methods
new(consumer_options, request_token_params)
click to toggle source
# File lib/contacts/oauth_consumer.rb, line 9 def initialize(consumer_options, request_token_params) @consumer_options = consumer_options @request_token_params = request_token_params end
Public Instance Methods
authentication_url(target = self.return_url)
click to toggle source
# File lib/contacts/oauth_consumer.rb, line 31 def authentication_url(target = self.return_url) @request_token = consumer.get_request_token({:oauth_callback => target}, @request_token_params) @request_token.authorize_url end
initialize_serialized(data)
click to toggle source
# File lib/contacts/oauth_consumer.rb, line 14 def initialize_serialized(data) value = data['request_token'] and @request_token = deserialize_oauth_token(consumer, value) value = data['access_token'] and @access_token = deserialize_oauth_token(consumer, value) end
serializable_data()
click to toggle source
# File lib/contacts/oauth_consumer.rb, line 21 def serializable_data data = {} data['access_token'] = serialize_oauth_token(@access_token) if @access_token data['request_token'] = serialize_oauth_token(@request_token) if @request_token data end
Private Instance Methods
consumer()
click to toggle source
# File lib/contacts/oauth_consumer.rb, line 46 def consumer @consumer ||= OAuth::Consumer.new(consumer_key, consumer_secret, @consumer_options) end
deserialize_oauth_token(consumer, data)
click to toggle source
# File lib/contacts/oauth_consumer.rb, line 64 def deserialize_oauth_token(consumer, data) params = query_to_params(data) klass = params['type'] == 'access' ? OAuth::AccessToken : OAuth::RequestToken token = klass.new(consumer, params.delete('oauth_token'), params.delete('oauth_token_secret')) token end
serialize_oauth_token(token)
click to toggle source
Marshal sucks for persistence. This provides a prettier, more future-proof persistable representation of a token.
# File lib/contacts/oauth_consumer.rb, line 54 def serialize_oauth_token(token) params = { 'version' => '1', # serialization format 'type' => token.is_a?(OAuth::AccessToken) ? 'access' : 'request', 'oauth_token' => token.token, 'oauth_token_secret' => token.secret, } params_to_query(params) end