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