Module: Trax::Model::Restorable::ClassMethods

Defined in:
lib/trax/model/restorable.rb

Instance Method Summary collapse

Instance Method Details

#setup_restorable!Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/trax/model/restorable.rb', line 23

def setup_restorable!
  self.class_eval do
    if(self.restorable_config.hide_deleted)
      default_scope { by_not_deleted }
    end

    if(self.restorable_config.alias_destroy)
      alias_method :destroy!, :destroy
    end

    ### Clear default deleted scope ###
    scope :by_is_deleted, lambda { |*|
      unscope(:where => self.restorable_config.field).where(self.restorable_config.field => true)
    }
    scope :by_not_deleted, lambda { |*|
      where(self.restorable_config.field => false)
    }

    default_value_for(self.restorable_config.field) { false }
  end
end