lib/active_regulation/expiration.rb in active_regulation-2.2.4 vs lib/active_regulation/expiration.rb in active_regulation-2.2.5
- old
+ new
@@ -6,11 +6,11 @@
include ActiveRegulation::Base
included do
attr_accessor :expiration, :raw_expiration
- before_save :record_expiration!, unless: -> (obj) { obj.raw_expiration.nil? }
+ before_save :record_expiration!
after_initialize :set_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
@@ -44,17 +44,19 @@
def extension_date(days=30)
DateTime.now + days
end
def record_expiration!
- false_value = FALSE_VALUES.include?(expiration)
- true_value = TRUE_VALUES.include?(expiration)
+ unless raw_expiration.nil?
+ false_value = FALSE_VALUES.include?(expiration)
+ true_value = TRUE_VALUES.include?(expiration)
- if false_value || true_value
- self.expires_at = (false_value ? extension_date : nil)
- else
- raise ArgumentError,
- "Unknown boolean: #{expiration.inspect}. Must be a valid boolean."
+ if false_value || true_value
+ self.expires_at = (false_value ? extension_date : nil)
+ else
+ raise ArgumentError,
+ "Unknown boolean: #{expiration.inspect}. Must be a valid boolean."
+ end
end
end
def set_expiration!
self.raw_expiration = expiration
\ No newline at end of file