Class: Password
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Password
- Defined in:
- app/models/password.rb
Instance Method Summary collapse
- #days_old ⇒ Object
- #days_remaining ⇒ Object
- #to_param ⇒ Object
-
#validate! ⇒ Object
validate!.
- #views_remaining ⇒ Object
Instance Method Details
#days_old ⇒ Object
9 10 11 |
# File 'app/models/password.rb', line 9 def days_old (Time.now.to_datetime - self.created_at.to_datetime).to_i end |
#days_remaining ⇒ Object
13 14 15 |
# File 'app/models/password.rb', line 13 def days_remaining [(self.expire_after_days - self.days_old), 0].max end |
#to_param ⇒ Object
5 6 7 |
# File 'app/models/password.rb', line 5 def to_param self.url_token.to_s end |
#validate! ⇒ Object
validate!
Run basic validations on the password. Expire the password if it’s limits have been reached (time or views)
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'app/models/password.rb', line 27 def validate! return if expired # Range checking self.expire_after_days ||= EXPIRE_AFTER_DAYS_DEFAULT self.expire_after_views ||= EXPIRE_AFTER_VIEWS_DEFAULT unless self.expire_after_days.between?(EXPIRE_AFTER_DAYS_MIN, EXPIRE_AFTER_DAYS_MAX) self.expire_after_days = EXPIRE_AFTER_DAYS_DEFAULT end unless self.expire_after_views.between?(EXPIRE_AFTER_VIEWS_MIN, EXPIRE_AFTER_VIEWS_MAX) self.expire_after_views = EXPIRE_AFTER_VIEWS_DEFAULT end unless self.new_record? if (self.days_old >= self.expire_after_days) or (self.views.count >= self.expire_after_views) # This password has hit max age or max views - expire it self.expired = true self.payload = nil self.save end end end |
#views_remaining ⇒ Object
17 18 19 |
# File 'app/models/password.rb', line 17 def views_remaining [(self.expire_after_views - self.views.count), 0].max end |