class Saviour::BaseUploader

Public Class Methods

after_upload(&block) click to toggle source
# File lib/saviour/base_uploader.rb, line 106
def after_upload(&block)
  after_upload_hooks.push(block)
end
after_upload_hooks() click to toggle source
# File lib/saviour/base_uploader.rb, line 110
def after_upload_hooks
  @after_upload ||= []
end
new(opts = {}) click to toggle source
# File lib/saviour/base_uploader.rb, line 6
def initialize(opts = {})
  @data = opts.fetch(:data, {})
  @stash = {}
end
process(name = nil, opts = {}, type = :memory, &block) click to toggle source
# File lib/saviour/base_uploader.rb, line 86
def process(name = nil, opts = {}, type = :memory, &block)
  if block_given?
    processors.push(method_or_block: name || block, type: type)
  else
    processors.push(method_or_block: name || block, type: type, opts: opts)
  end
end
process_with_file(name = nil, opts = {}, &block) click to toggle source
# File lib/saviour/base_uploader.rb, line 94
def process_with_file(name = nil, opts = {}, &block)
  process(name, opts, :file, &block)
end
processors() click to toggle source
# File lib/saviour/base_uploader.rb, line 76
def processors
  @processors ||= []
end
storage() click to toggle source
# File lib/saviour/base_uploader.rb, line 80
def storage
  @storage ||= Config.storage

  @storage.respond_to?(:call) ? @storage.call : @storage
end
store_dir(name = nil, &block) click to toggle source
# File lib/saviour/base_uploader.rb, line 98
def store_dir(name = nil, &block)
  store_dirs.push(name || block)
end
store_dirs() click to toggle source
# File lib/saviour/base_uploader.rb, line 72
def store_dirs
  @store_dirs ||= []
end
with_storage(storage) click to toggle source
# File lib/saviour/base_uploader.rb, line 102
def with_storage(storage)
  @storage = storage
end

Public Instance Methods

_process_as_contents(contents, filename) click to toggle source
# File lib/saviour/base_uploader.rb, line 23
def _process_as_contents(contents, filename)
  raise ConfigurationError, "Please use `store_dir` in the uploader" unless store_dir

  catch(:halt_process) do
    if Config.processing_enabled
      contents, filename = Uploader::ProcessorsRunner.new(self).run!(contents, filename)
    end

    path = ::File.join(store_dir, filename)

    [contents, path]
  end
end
_process_as_file(file, filename) click to toggle source
# File lib/saviour/base_uploader.rb, line 37
def _process_as_file(file, filename)
  raise ConfigurationError, "Please use `store_dir` in the uploader" unless store_dir

  catch(:halt_process) do
    if Config.processing_enabled
      file, filename = Uploader::ProcessorsRunner.new(self).run_as_file!(file, filename)
    end

    path = ::File.join(store_dir, filename)

    [file, path]
  end
end
halt_process() click to toggle source
# File lib/saviour/base_uploader.rb, line 51
def halt_process
  throw(:halt_process)
end
method_missing(name, *args, &block) click to toggle source
Calls superclass method
# File lib/saviour/base_uploader.rb, line 11
def method_missing(name, *args, &block)
  if @data.key?(name)
    @data[name]
  else
    super
  end
end
respond_to_missing?(name, *) click to toggle source
Calls superclass method
# File lib/saviour/base_uploader.rb, line 19
def respond_to_missing?(name, *)
  @data.key?(name) || super
end
stash(hash) click to toggle source
# File lib/saviour/base_uploader.rb, line 55
def stash(hash)
  @stash.deep_merge!(hash)
end
stashed() click to toggle source
# File lib/saviour/base_uploader.rb, line 59
def stashed
  @stash
end
storage() click to toggle source
# File lib/saviour/base_uploader.rb, line 67
def storage
  self.class.storage
end
store_dir() click to toggle source
# File lib/saviour/base_uploader.rb, line 63
def store_dir
  @store_dir ||= Uploader::StoreDirExtractor.new(self).store_dir
end