Skip to content

Commit

Permalink
Added support for Active Record STI
Browse files Browse the repository at this point in the history
  • Loading branch information
flah00 committed Apr 19, 2011
1 parent 4ca8b52 commit 5f0fe66
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
2 changes: 1 addition & 1 deletion Gemfile.lock
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
rails3_acts_as_paranoid (0.0.5)
rails3_acts_as_paranoid (0.0.6)
activerecord (>= 3.0)

GEM
Expand Down
20 changes: 10 additions & 10 deletions lib/rails3_acts_as_paranoid.rb
Expand Up @@ -88,14 +88,14 @@ def delete_now_value
module InstanceMethods

def paranoid_value
self.send(self.class.paranoid_column)
self.send(self.class.base_class.paranoid_column)
end

def destroy!
with_transaction_returning_status do
run_callbacks :destroy do
self.class.delete_all!(:id => self.id)
self.paranoid_value = self.class.delete_now_value
self.class.base_class.delete_all!(:id => self.id)
self.paranoid_value = self.class.base_class.delete_now_value
freeze
end
end
Expand All @@ -105,25 +105,25 @@ def destroy
with_transaction_returning_status do
run_callbacks :destroy do
if paranoid_value.nil?
self.class.delete_all(:id => self.id)
self.class.base_class.delete_all(:id => self.id)
else
self.class.delete_all!(:id => self.id)
self.class.base_class.delete_all!(:id => self.id)
end
self.paranoid_value = self.class.delete_now_value
self.paranoid_value = self.class.base_class.delete_now_value
end
end
end

def recover(options={})
options = {
:recursive => self.class.paranoid_configuration[:recover_dependent_associations],
:recovery_window => self.class.paranoid_configuration[:dependent_recovery_window]
:recursive => self.class.base_class.paranoid_configuration[:recover_dependent_associations],
:recovery_window => self.class.base_class.paranoid_configuration[:dependent_recovery_window]
}.merge(options)

self.class.transaction do
recover_dependent_associations(options[:recovery_window], options) if options[:recursive]

self.update_attributes(self.class.paranoid_column.to_sym => nil)
self.update_attributes(self.class.base_class.paranoid_column.to_sym => nil)
end
end

Expand Down Expand Up @@ -157,7 +157,7 @@ def deleted?

private
def paranoid_value=(value)
self.send("#{self.class.paranoid_column}=", value)
self.send("#{self.class.base_class.paranoid_column}=", value)
end

end
Expand Down
2 changes: 1 addition & 1 deletion rails3_acts_as_paranoid.gemspec
Expand Up @@ -2,7 +2,7 @@

Gem::Specification.new do |s|
s.name = "rails3_acts_as_paranoid"
s.version = "0.0.5"
s.version = "0.0.6"
s.platform = Gem::Platform::RUBY
s.authors = ["Gonçalo Silva"]
s.email = ["goncalossilva@gmail.com"]
Expand Down

0 comments on commit 5f0fe66

Please sign in to comment.