# -*- encoding : utf-8 -*-

class ImageUploader < CarrierWave::Uploader::Base

  # Include RMagick or ImageScience support:
  include CarrierWave::RMagick
  # include CarrierWave::ImageScience

  # Choose what kind of storage to use for this uploader:
  storage :file
  # storage :s3

  # 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
    "public_medias/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  # Provide a default URL as a default if there hasn't been a file uploaded:
  # def default_url
  #   "/images/fallback/" + [version_name, "default.png"].compact.join('_')
  # end

  # Process files as they are uploaded:
  process :resize_to_limit => [1200, 1200]
  #
  # def scale(width, height)
  #   # do something
  # end






  # Create different versions of your uploaded files:
  version :large do
    process :resize_to_limit => [1200, 1200]
    
    
    version :medium do
      process :resize_to_limit => [800, 700]
      
      version :small do
        process :resize_to_limit => [300, 400]
      
        version :thumb do
          process :resize_to_limit => [250, 250]
        end
      
      end
      
      
    end
    
    
    
    
    
  end

  version :square do
    process :resize_to_fill => [250, 250]
  end

  # Add a white list of extensions which are allowed to be uploaded.
  # For images you might use something like this:
  def extension_white_list
     %w(jpg jpeg gif png bmp)
  end

  # Override the filename of the uploaded files:
  def filename
    File.basename(original_filename, File.extname(original_filename)).to_s.to_slug + File.extname(original_filename).to_s if original_filename
    
    
  end

end