Sha256: d11d79552cd289ea13f48a6c22ea1cac28a1a6531b97076811544f877b535d68

Contents?: true

Size: 1.1 KB

Versions: 6

Compression:

Stored size: 1.1 KB

Contents

require 'fileutils'
class FileUploader < CarrierWave::Uploader::Base
    include CarrierWave::MiniMagick
    storage :file
    after :remove, :delete_empty_upstream_dirs

    version :normalized, :if => :image? do
      process :resize_to_fit => [600,600]
    end

    def timestamp
      time=if model
        model.created_at || Time.now
      else
        Time.now
      end
      time.strftime("%Y%m")
    end

    # With slash in first place it will be absolute url, otherwise relative to Rails.root+"/public"
    def store_dir
      if model
        "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{timestamp}/#{model.id}"
      else
        "uploads/misc"
      end
    end

    def delete_empty_upstream_dirs
      path = ::File.expand_path(store_dir, root)
      #FileUtils.rm_rf path # always remove
      
     # path = ::File.expand_path(base_store_dir, root)
      Dir.delete(path) # fails if path not empty dir
    rescue SystemCallError
      true # nothing, the dir is not empty
    end

    def image?(file)
      File.extname(file.filename.to_s).match(/jpg|JPG|jpeg|JPEG|png|PNG|gif|GIF/)
    end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
lolita-file-upload-0.4.13 app/uploaders/file_uploader.rb
lolita-file-upload-0.4.12 app/uploaders/file_uploader.rb
lolita-file-upload-0.4.11 app/uploaders/file_uploader.rb
lolita-file-upload-0.3.0.1 app/uploaders/file_uploader.rb
lolita-file-upload-0.4.10 app/uploaders/file_uploader.rb
lolita-file-upload-0.4.9 app/uploaders/file_uploader.rb