lib/active_regulation/expiration.rb in active_regulation-2.2.1 vs lib/active_regulation/expiration.rb in active_regulation-2.2.2
- old
+ new
@@ -3,10 +3,18 @@
module ActiveRegulation
module Expiration
extend ActiveSupport::Concern
included do
+ attr_accessor :expiration
+
+ validates :expiration, inclusion: { in: 0..1 },
+ allow_blank: true,
+ allow_nil: true
+
+ before_save :record_expiration!
+
scope :expired, -> { where("expires_at IS NULL OR expires_at < ?", Time.now) }
scope :unexpired, -> { where("expires_at IS NOT NULL AND expires_at >= ?", Time.now) }
end
def expire!
@@ -35,9 +43,13 @@
private
def extension_date(days=30)
DateTime.now + days
+ end
+
+ def record_expiration!
+ self.expires_at = (expiration.zero? ? extension_date : nil) unless expiration.blank?
end
end
end
\ No newline at end of file