Class: User

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/user.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.anonymous(attributes = {}) ⇒ Object

FIXME rename to build_anonymous



30
31
32
33
# File 'app/models/user.rb', line 30

def anonymous(attributes = {}) # FIXME rename to build_anonymous
  attributes[:anonymous] = true
  new attributes
end

.authenticate(credentials) ⇒ Object



25
26
27
28
# File 'app/models/user.rb', line 25

def authenticate(credentials)
  return false unless user = User.find_by_email(credentials[:email])
  user.authenticate(credentials[:password]) ? user : false
end

Instance Method Details

#attributes=(attributes) ⇒ Object



36
37
38
39
40
41
42
# File 'app/models/user.rb', line 36

def attributes=(attributes)
  attributes.symbolize_keys!
  memberships = attributes.delete :memberships
  super.tap do
    update_memberships memberships if memberships
  end
end

#email_with_nameObject



87
88
89
# File 'app/models/user.rb', line 87

def email_with_name
  "#{name} <#{email}>"
end

#first_name_from_emailObject



97
98
99
# File 'app/models/user.rb', line 97

def first_name_from_email
  self.first_name.blank? && self.email ? self.email.split('@').first : self.first_name
end

#homepageObject



91
92
93
94
95
# File 'app/models/user.rb', line 91

def homepage
  return nil unless self[:homepage]

  self[:homepage][0..6] == 'http://' ? self[:homepage] : 'http://' + self[:homepage]
end

#member_of?(site) ⇒ Boolean

Returns:

  • (Boolean)


55
56
57
# File 'app/models/user.rb', line 55

def member_of?(site)
  sites.include?(site)
end

#nameObject



79
80
81
# File 'app/models/user.rb', line 79

def name
  last_name ? "#{first_name} #{last_name}" : first_name
end

#name=(name) ⇒ Object



75
76
77
# File 'app/models/user.rb', line 75

def name=(name)
  self.first_name = name
end

#registered?Boolean

def restore!

update deleted_at: nil if deleted_at

end

Returns:

  • (Boolean)


71
72
73
# File 'app/models/user.rb', line 71

def registered?
  !new_record? && !anonymous?
end

#to_sObject



83
84
85
# File 'app/models/user.rb', line 83

def to_s
  name
end

#update_memberships(memberships) ⇒ Object



44
45
46
47
48
49
50
51
52
53
# File 'app/models/user.rb', line 44

def update_memberships(memberships)
  memberships.each do |site_id, active|
    site = Site.find(site_id)
    if active
      self.sites << site unless member_of?(site)
    else
      self.sites.delete(site) if member_of?(site)
    end
  end
end

#verified?Boolean

Returns:

  • (Boolean)


59
60
61
# File 'app/models/user.rb', line 59

def verified?
  !verified_at.nil?
end

#verify!Object



63
64
65
# File 'app/models/user.rb', line 63

def verify!
  update verified_at: Time.zone.now if verified_at.nil?
end