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