lib/active_regulation/visibility.rb in active_regulation-2.2.4 vs lib/active_regulation/visibility.rb in active_regulation-2.2.5

- old
+ new

@@ -4,11 +4,11 @@ include ActiveRegulation::Base included do attr_accessor :visibility, :raw_visibility - before_save :record_visibility!, unless: -> (obj) { obj.raw_visibility.nil? } + before_save :record_visibility! after_initialize :set_visibility! scope :visible, -> { where(invisible_at: nil) } scope :invisible, -> { where.not(invisible_at: nil) } end @@ -34,17 +34,19 @@ end private def record_visibility! - false_value = FALSE_VALUES.include?(visibility) - true_value = TRUE_VALUES.include?(visibility) + unless raw_visibility.nil? + false_value = FALSE_VALUES.include?(visibility) + true_value = TRUE_VALUES.include?(visibility) - if false_value || true_value - self.invisible_at = (false_value ? Time.now : nil) - else - raise ArgumentError, - "Unknown boolean: #{visibility.inspect}. Must be a valid boolean." + if false_value || true_value + self.invisible_at = (false_value ? Time.now : nil) + else + raise ArgumentError, + "Unknown boolean: #{visibility.inspect}. Must be a valid boolean." + end end end def set_visibility! self.raw_visibility = visibility \ No newline at end of file