Module: ActsAsParanoid::Core::ClassMethods
- Defined in:
- lib/acts_as_paranoid/core.rb
Class Method Summary collapse
Instance Method Summary collapse
- #after_recover(method) ⇒ Object
- #before_recover(method) ⇒ Object
- #boolean_type_not_nullable? ⇒ Boolean
- #delete_all(conditions = nil) ⇒ Object
- #delete_all!(conditions = nil) ⇒ Object
- #delete_now_value ⇒ Object
- #dependent_associations ⇒ Object
- #only_deleted ⇒ Object
- #paranoid_column ⇒ Object
- #paranoid_column_type ⇒ Object
- #paranoid_default_scope ⇒ Object
- #string_type_with_deleted_value? ⇒ Boolean
- #with_deleted ⇒ Object
Class Method Details
.extended(base) ⇒ Object
8 9 10 |
# File 'lib/acts_as_paranoid/core.rb', line 8 def self.extended(base) base.define_callbacks :recover end |
Instance Method Details
#after_recover(method) ⇒ Object
16 17 18 |
# File 'lib/acts_as_paranoid/core.rb', line 16 def after_recover(method) set_callback :recover, :after, method end |
#before_recover(method) ⇒ Object
12 13 14 |
# File 'lib/acts_as_paranoid/core.rb', line 12 def before_recover(method) set_callback :recover, :before, method end |
#boolean_type_not_nullable? ⇒ Boolean
57 58 59 |
# File 'lib/acts_as_paranoid/core.rb', line 57 def boolean_type_not_nullable? paranoid_column_type == :boolean && !paranoid_configuration[:allow_nulls] end |
#delete_all(conditions = nil) ⇒ Object
38 39 40 |
# File 'lib/acts_as_paranoid/core.rb', line 38 def delete_all(conditions = nil) where(conditions).update_all(["#{paranoid_configuration[:column]} = ?", delete_now_value]) end |
#delete_all!(conditions = nil) ⇒ Object
34 35 36 |
# File 'lib/acts_as_paranoid/core.rb', line 34 def delete_all!(conditions = nil) without_paranoid_default_scope.delete_all!(conditions) end |
#delete_now_value ⇒ Object
73 74 75 76 77 78 79 |
# File 'lib/acts_as_paranoid/core.rb', line 73 def delete_now_value case paranoid_configuration[:column_type] when "time" then Time.now when "boolean" then true when "string" then paranoid_configuration[:deleted_value] end end |
#dependent_associations ⇒ Object
69 70 71 |
# File 'lib/acts_as_paranoid/core.rb', line 69 def dependent_associations self.reflect_on_all_associations.select {|a| [:destroy, :delete_all].include?(a.[:dependent]) } end |
#only_deleted ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/acts_as_paranoid/core.rb', line 24 def only_deleted if string_type_with_deleted_value? without_paranoid_default_scope.where(paranoid_column_reference => paranoid_configuration[:deleted_value]) elsif boolean_type_not_nullable? without_paranoid_default_scope.where(paranoid_column_reference => true) else without_paranoid_default_scope.where.not(paranoid_column_reference => nil) end end |
#paranoid_column ⇒ Object
61 62 63 |
# File 'lib/acts_as_paranoid/core.rb', line 61 def paranoid_column paranoid_configuration[:column].to_sym end |
#paranoid_column_type ⇒ Object
65 66 67 |
# File 'lib/acts_as_paranoid/core.rb', line 65 def paranoid_column_type paranoid_configuration[:column_type].to_sym end |
#paranoid_default_scope ⇒ Object
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/acts_as_paranoid/core.rb', line 42 def paranoid_default_scope if string_type_with_deleted_value? self.all.table[paranoid_column].eq(nil). or(self.all.table[paranoid_column].not_eq(paranoid_configuration[:deleted_value])) elsif boolean_type_not_nullable? self.all.table[paranoid_column].eq(false) else self.all.table[paranoid_column].eq(nil) end end |
#string_type_with_deleted_value? ⇒ Boolean
53 54 55 |
# File 'lib/acts_as_paranoid/core.rb', line 53 def string_type_with_deleted_value? paranoid_column_type == :string && !paranoid_configuration[:deleted_value].nil? end |
#with_deleted ⇒ Object
20 21 22 |
# File 'lib/acts_as_paranoid/core.rb', line 20 def with_deleted without_paranoid_default_scope end |