Module: StorageUnit::Core

Extended by:
ActiveSupport::Concern
Defined in:
lib/storage_unit/core.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#recover!(opts = {}) ⇒ Object



42
43
44
45
46
47
# File 'lib/storage_unit/core.rb', line 42

def recover!(opts = {})
  run_callbacks :recover do
    update_columns trash_hash(nil)
    recover_dependents
  end
end

#recover_dependentsObject



49
50
51
52
53
# File 'lib/storage_unit/core.rb', line 49

def recover_dependents
  Array(storage_unit_opts[:cascade]).each do |x|
    send(x).with_deleted.update_all trash_hash(nil)
  end
end

#trash!Object



29
30
31
32
33
34
# File 'lib/storage_unit/core.rb', line 29

def trash!
  run_callbacks :trash do
    update_columns trash_hash(DateTime.now)
    trash_dependents
  end
end

#trash_dependentsObject



36
37
38
39
40
# File 'lib/storage_unit/core.rb', line 36

def trash_dependents
  Array(storage_unit_opts[:cascade]).each do |x|
    send(x).update_all trash_hash(DateTime.now)
  end
end

#trash_hash(value) ⇒ Object



55
56
57
# File 'lib/storage_unit/core.rb', line 55

def trash_hash(value)
  {}.tap { |h| h[storage_unit_opts[:column]] = value }
end

#trashed?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/storage_unit/core.rb', line 25

def trashed?
  send(storage_unit_opts[:column]).present?
end