class TBird::Uploader

Attributes

acl[R]
content_type[R]
file[R]
metadata[R]
options[R]
original_filename[R]
uploads[R]

Public Class Methods

new(file, options = {}) click to toggle source
# File lib/t_bird/uploader.rb, line 6
def initialize(file, options = {})
  @file = file
  @acl = options.fetch(:acl, :public_read)
  @options = default_options.merge(options)
  @uploads = {}
  @content_type = @file[:type]
  @original_filename = @file[:filename]
  @metadata = { acl: acl, content_type: content_type, metadata: @options[:metadata] || {} }
end
version(name, &block) click to toggle source
# File lib/t_bird/uploader.rb, line 46
def self.version(name, &block)
  @versions ||= {}
  @versions[name.to_sym] = block
end
versions() click to toggle source
# File lib/t_bird/uploader.rb, line 39
def self.versions
  @versions ||= { 
    thumbnail: ->(img) { img.thumbnail },
    original: ->(img) { img.original }
  }
end

Public Instance Methods

namer() click to toggle source
# File lib/t_bird/uploader.rb, line 16
def namer
  @namer ||= Namer.new(original_filename, options[:identifier], options[:token])
end
processor() click to toggle source
# File lib/t_bird/uploader.rb, line 20
def processor
  Processor.new(@file[:tempfile])
end
transmitter() click to toggle source
# File lib/t_bird/uploader.rb, line 24
def transmitter
  @transmitter ||= Transmitter.new
end
upload!() click to toggle source
# File lib/t_bird/uploader.rb, line 28
def upload!
  versions.each do |version,block|
    @uploads[version] = transmitter.transmit!(namer.new_name(version), block.call(processor), metadata)
  end
  uploads
end
versions() click to toggle source
# File lib/t_bird/uploader.rb, line 35
def versions
  self.class.versions
end

Private Instance Methods

default_options() click to toggle source
# File lib/t_bird/uploader.rb, line 53
def default_options
  {
    identifier: nil,
    token: nil
  }
end