Sha256: ac9fbf79624e5cd65188f9dabfaa01ef794f76951a533e3e14833c785c628f2e

Contents?: true

Size: 972 Bytes

Versions: 5

Compression:

Stored size: 972 Bytes

Contents

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

    version :normalized 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
        "upload/#{model.class.to_s.underscore}/#{timestamp}/#{model.id}"
      else
        "upload/misc"
      end
    end

    def delete_empty_upstream_dirs
      path = ::File.expand_path(store_dir, root)
      Dir.delete(path) # fails if path not empty dir
      
     # 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

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
lolita-file-upload-0.2.8 app/uploaders/file_uploader.rb
lolita-file-upload-0.2.7 app/uploaders/file_uploader.rb
lolita-file-upload-0.2.6 app/uploaders/file_uploader.rb
lolita-file-upload-0.2.5 app/uploaders/file_uploader.rb
lolita-file-upload-0.2.4 app/uploaders/file_uploader.rb