Sha256: bee4da693c24567f52789617b6eba59ebad60f593a463b849ffb691fe83a7108

Contents?: true

Size: 1.06 KB

Versions: 5

Compression:

Stored size: 1.06 KB

Contents

# encoding: utf-8

class AttachmentUploader < CarrierWave::Uploader::Base

  include CarrierWave::MiniMagick

  storage :file

  # Override the directory where uploaded files will be stored.
  # This is a sensible default for uploaders that are meant to be mounted:
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{model.id}"
  end

  # Create different versions of your uploaded files:
  version :thumb , :if => :image? do
    process :resize_to_fill => [32, 32]
  end

  version :preview , :if => :image? do
    process :resize_to_fill => [186,117]
  end

  # see https://github.com/jnicklas/carrierwave/wiki/How-to%3A-Create-random-and-unique-filenames-for-all-versioned-files
  def filename
     "#{secure_token(5)}.#{file.extension}" if original_filename.present?
  end

  protected
  def secure_token(length = 16)
    model[:secure_token] ||= SecureRandom.hex(length / 2)
  end

  # see https://github.com/jnicklas/carrierwave/wiki/How-to%3A-Do-conditional-processing
  def image?(new_file)
    (new_file.content_type || model.content_type).include? 'image'
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
amalgam-2.1.4 spec/dummy/app/uploaders/attachment_uploader.rb
amalgam-2.1.3.1 spec/dummy/app/uploaders/attachment_uploader.rb
amalgam-2.1.3 spec/dummy/app/uploaders/attachment_uploader.rb
amalgam-2.1.2 spec/dummy/app/uploaders/attachment_uploader.rb
amalgam-2.1.1 spec/dummy/app/uploaders/attachment_uploader.rb