Sha256: 4a8e24d5d0f0b98a81a5845b1188a9b428d2878f9c2edb452ccb2b7432d60a31
Contents?: true
Size: 916 Bytes
Versions: 7
Compression:
Stored size: 916 Bytes
Contents
module ActsAsArchive module Base module Restore def self.included(base) unless base.included_modules.include?(InstanceMethods) base.send :extend, ClassMethods base.send :include, InstanceMethods end end module ClassMethods def copy_from_archive(conditions) add_conditions!(where = '', conditions) col_names = column_names - [ 'deleted_at' ] connection.execute(%{ INSERT INTO #{table_name} (#{col_names.join(', ')}) SELECT #{col_names.join(', ')} FROM archived_#{table_name} #{where} }) connection.execute("DELETE FROM archived_#{table_name} #{where}") end def restore_all(conditions=nil) copy_from_archive(conditions) end end module InstanceMethods end end end end
Version data entries
7 entries across 7 versions & 2 rubygems