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



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

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)


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

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

  raise ArgumentError, 'Invalid hash: must include id.' unless hash.key?('id')

  user = User.new
  user.twitter_id = hash['id'].to_s
  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



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

def self.table_name; 'users' end

Instance Method Details

#assign_twitter_attributes(hash) ⇒ Object



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

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

#forget_meObject



92
93
94
95
# File 'app/models/twitter_auth/generic_user.rb', line 92

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

#remember_meObject



81
82
83
84
85
86
87
88
89
90
# File 'app/models/twitter_auth/generic_user.rb', line 81

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



73
74
75
76
77
78
79
# File 'app/models/twitter_auth/generic_user.rb', line 73

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

#update_twitter_attributes(hash) ⇒ Object



62
63
64
65
# File 'app/models/twitter_auth/generic_user.rb', line 62

def update_twitter_attributes(hash)
  assign_twitter_attributes(hash)
  save
end