Module: ActsAsArchivable

Defined in:
lib/acts_as_archivable.rb,
lib/acts_as_archivable/naming.rb,
lib/acts_as_archivable/schema.rb,
lib/acts_as_archivable/version.rb,
lib/acts_as_archivable/migrating.rb,
lib/acts_as_archivable/instance_methods.rb

Defined Under Namespace

Modules: InstanceMethods, Migrating, Naming, Schema

Constant Summary collapse

VERSION =
'0.1.0'

Instance Method Summary collapse

Instance Method Details

#acts_as_archivable(options = {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/acts_as_archivable.rb', line 12

def acts_as_archivable(options = {})
  extend ActsAsArchivable::Naming
  extend ActsAsArchivable::Schema
  extend ActsAsArchivable::Migrating

  options[:months_to_keep] ||= 2

  scope :to_be_archived, -> { where('created_at < ?', options[:months_to_keep].months.ago) }

  Object.const_set(archived_class_name, Class.new(self))
  archived_class.table_name = archived_table_name
end