Module: Saviour::Model

Defined in:
lib/saviour/model.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/saviour/model.rb', line 3

def self.included(klass)
  Integrator.new(klass, PersistenceLayer).setup!

  klass.class_eval do
    raise(NoActiveRecordDetected, "Error: ActiveRecord not detected in #{self}") unless self.ancestors.include?(ActiveRecord::Base)

    after_destroy { Saviour::LifeCycle.new(self, PersistenceLayer).delete! }
    after_update { Saviour::LifeCycle.new(self, PersistenceLayer).update! }
    after_create { Saviour::LifeCycle.new(self, PersistenceLayer).create! }
    validate { Saviour::Validator.new(self).validate! }
  end
end

Instance Method Details

#dupObject



23
24
25
26
27
28
29
30
31
# File 'lib/saviour/model.rb', line 23

def dup
  duped = super

  self.class.attached_files.each do |attach_as|
    duped.instance_variable_set("@__uploader_#{attach_as}", send(attach_as).dup)
  end

  duped
end

#reload(*args) ⇒ Object



16
17
18
19
20
21
# File 'lib/saviour/model.rb', line 16

def reload(*args)
  self.class.attached_files.each do |attach_as|
    instance_variable_set("@__uploader_#{attach_as}", nil)
  end
  super
end