Module: Archivable::Model

Extended by:
ActiveSupport::Concern
Defined in:
lib/archivable/model.rb

Instance Method Summary collapse

Instance Method Details

#active?Boolean

Returns:

  • (Boolean)


20
21
22
23
# File 'lib/archivable/model.rb', line 20

def active?
  return false if respond_to?(:is_active) && !is_active
  alive?
end

#alive?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/archivable/model.rb', line 45

def alive?
  ! archived?
end

#alive_presenceObject



49
50
51
# File 'lib/archivable/model.rb', line 49

def alive_presence
  alive? ? self : nil
end

#archiveObject



25
26
27
# File 'lib/archivable/model.rb', line 25

def archive
  self.archived_at ||= Time.zone.now
end

#archive!Object



29
30
31
# File 'lib/archivable/model.rb', line 29

def archive!
  update_column :archived_at, Time.zone.now
end

#archived?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/archivable/model.rb', line 41

def archived?
  archived_at.present?
end

#restoreObject



33
34
35
# File 'lib/archivable/model.rb', line 33

def restore
  self.archived_at = nil
end

#restore!Object



37
38
39
# File 'lib/archivable/model.rb', line 37

def restore!
  update_column :archived_at, nil
end