Sha256: 9b9515e12ce4e145b4407d142daaa496c70262de472888cf169a3f58b117ada6
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
# encoding: utf-8 module TBird class Uploader attr_reader :file, :acl, :options, :uploads, :content_type, :original_filename, :metadata 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 def namer @namer ||= Namer.new(original_filename, options[:identifier], options[:token]) end def processor Processor.new(@file[:tempfile]) end def transmitter @transmitter ||= Transmitter.new end def upload! versions.each do |version,block| @uploads[version] = transmitter.transmit!(namer.new_name(version), block.call(processor), metadata) end uploads end def versions self.class.versions end def self.versions @versions ||= { thumbnail: ->(img) { img.thumbnail }, original: ->(img) { img.original } } end def self.version(name, &block) @versions ||= {} @versions[name.to_sym] = block end private def default_options { identifier: nil, token: nil } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
t_bird-0.0.5 | lib/t_bird/uploader.rb |