class CarrierWave::Storage::Cascade

Attributes

primary_storage[R]
secondary_storage[R]

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/carrierwave/storage/cascade.rb, line 6
def initialize(*args)
  super(*args)

  @primary_storage    = get_storage(uploader.class.primary_storage).new(*args)
  @secondary_storage  = get_storage(uploader.class.secondary_storage).new(*args)
end

Public Instance Methods

retrieve!(*args) click to toggle source
# File lib/carrierwave/storage/cascade.rb, line 17
def retrieve!(*args)
  primary_file = primary_storage.retrieve!(*args)

  if !primary_file.exists?
    secondary_file = secondary_storage.retrieve!(*args)
    return SecondaryFileProxy.new(uploader, secondary_file)
  else
    return primary_file
  end
end
store!(*args) click to toggle source
# File lib/carrierwave/storage/cascade.rb, line 13
def store!(*args)
  primary_storage.store!(*args)
end

Private Instance Methods

get_storage(storage = nil) click to toggle source
# File lib/carrierwave/storage/cascade.rb, line 30
def get_storage(storage = nil)
  storage.is_a?(Symbol) ? eval(uploader.storage_engines[storage]) : storage
end