Class: ActiveRecord::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/persistent_record.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.acts_as_persistent(options = {}) ⇒ Object



139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/persistent_record.rb', line 139

def self.acts_as_persistent(options = {})

  alias_method :default_destroy, :destroy

  include PersistentRecord

  class_attribute :record_deleted_at_column

  self.record_deleted_at_column = options[:column] || :deleted_at
  default_scope { where(record_deleted_at_column => nil) }

  before_restore {
    self.class.notify_observers(:before_restore, self) if self.class.respond_to?(:notify_observers)
  }

  after_restore {
    self.class.notify_observers(:after_restore, self) if self.class.respond_to?(:notify_observers)
  }

  unless connection.column_exists?(table_name, record_deleted_at_column)
    raise(ActiveModel::MissingAttributeError)
  end

end

.persistent?Boolean

Returns:

  • (Boolean)


164
165
166
# File 'lib/persistent_record.rb', line 164

def self.persistent?
  false
end

Instance Method Details

#persisted?Boolean

Returns:

  • (Boolean)


172
173
174
# File 'lib/persistent_record.rb', line 172

def persisted?
  persistent? ? !new_record? : super
end

#persistent?Boolean

Returns:

  • (Boolean)


168
169
170
# File 'lib/persistent_record.rb', line 168

def persistent?
  self.class.persistent?
end