# encoding: utf-8 class AssetUploader < CarrierWave::Uploader::Base include CarrierWave::RMagick include Locomotive::CarrierWave::Uploader::Asset version :thumb, :if => :image? do process :resize_to_fill => [50, 50] process :convert => 'png' end version :medium, :if => :image? do process :resize_to_fill => [80, 80] process :convert => 'png' end version :preview, :if => :image? do process :resize_to_fit => [880, 1100] process :convert => 'png' end def store_dir # puts "model = #{model.inspect}" # puts "collection = #{model.collection.inspect}" # puts "=====" self.build_store_dir('sites', model.collection.site_id, 'assets', model.id) end # process :set_content_type # process :set_size # process :set_width_and_height # # def set_content_type(*args) # value = :other # # content_type = file.content_type == 'application/octet-stream' ? File.mime_type?(original_filename) : file.content_type # # self.class.content_types.each_pair do |type, rules| # rules.each do |rule| # case rule # when String then value = type if content_type == rule # when Regexp then value = type if (content_type =~ rule) == 0 # end # end # end # # model.content_type = value # end # def set_size(*args) # model.size = file.size # end # # def set_width_and_height # if model.image? # magick = ::Magick::Image.read(current_path).first # model.width, model.height = magick.columns, magick.rows # end # end # # def image?(file) # model.image? # end # def self.content_types # { # :image => ['image/jpeg', 'image/pjpeg', 'image/gif', 'image/png', 'image/x-png', 'image/jpg', 'image/x-icon'], # :media => [/^video/, 'application/x-shockwave-flash', 'application/x-swf', /^audio/, 'application/ogg', 'application/x-mp3'], # :pdf => ['application/pdf', 'application/x-pdf'], # :stylesheet => ['text/css'], # :javascript => ['text/javascript', 'text/js', 'application/x-javascript', 'application/javascript'], # :font => ['application/x-font-ttf', 'application/vnd.ms-fontobject', 'image/svg+xml', 'application/x-woff'] # } # end end