Class: TwitterAuth::GenericUser

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
BasicUser, OauthUser
Defined in:
app/models/twitter_auth/generic_user.rb

Constant Summary collapse

TWITTER_ATTRIBUTES =
[
  :name,
  :location,
  :description,
  :profile_image_url,
  :url,
  :protected,
  :profile_background_color,
  :profile_sidebar_fill_color,
  :profile_link_color,
  :profile_sidebar_border_color,
  :profile_text_color,
  :profile_background_image_url,
  :profile_background_tile,
  :friends_count,
  :statuses_count,
  :followers_count,      
  :favourites_count,
  :time_zone,
  :utc_offset
]

Class Method Summary collapse

Instance Method Summary collapse

Methods included from BasicUser

included, #password, #password=

Methods included from OauthUser

included, #token

Class Method Details

.from_remember_token(token) ⇒ Object



48
49
50
# File 'app/models/twitter_auth/generic_user.rb', line 48

def self.from_remember_token(token)
  first(:conditions => ["remember_token = ? AND remember_token_expires_at > ?", token, Time.now])
end

.new_from_twitter_hash(hash) ⇒ Object

Raises:

  • (ArgumentError)


35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/models/twitter_auth/generic_user.rb', line 35

def self.new_from_twitter_hash(hash)
  raise ArgumentError, 'Invalid hash: must include screen_name.' unless hash.key?('screen_name')

  user = User.new
  user. = hash['screen_name']

  TWITTER_ATTRIBUTES.each do |att|
    user.send("#{att}=", hash[att.to_s]) if user.respond_to?("#{att}=")
  end

  user
end

.table_nameObject



33
# File 'app/models/twitter_auth/generic_user.rb', line 33

def self.table_name; 'users' end

Instance Method Details

#assign_twitter_attributes(hash) ⇒ Object



52
53
54
55
56
# File 'app/models/twitter_auth/generic_user.rb', line 52

def assign_twitter_attributes(hash)
  TWITTER_ATTRIBUTES.each do |att|
    send("#{att}=", hash[att.to_s]) if respond_to?("#{att}=")
  end
end

#forget_meObject



88
89
90
91
# File 'app/models/twitter_auth/generic_user.rb', line 88

def forget_me
  self.remember_token = self.remember_token_expires_at = nil
  self.save
end

#remember_meObject



77
78
79
80
81
82
83
84
85
86
# File 'app/models/twitter_auth/generic_user.rb', line 77

def remember_me
  return false unless respond_to?(:remember_token)

  self.remember_token = ActiveSupport::SecureRandom.hex(10)
  self.remember_token_expires_at = Time.now + TwitterAuth.remember_for.days
  
  save

  {:value => self.remember_token, :expires => self.remember_token_expires_at}
end

#twitterObject



69
70
71
72
73
74
75
# File 'app/models/twitter_auth/generic_user.rb', line 69

def twitter
  if TwitterAuth.oauth?
    TwitterAuth::Dispatcher::Oauth.new(self)
  else
    TwitterAuth::Dispatcher::Basic.new(self)
  end
end

#update_twitter_attributes(hash) ⇒ Object



58
59
60
61
# File 'app/models/twitter_auth/generic_user.rb', line 58

def update_twitter_attributes(hash)
  assign_twitter_attributes(hash)
  save
end