Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 26th, 2012  |  syntax: None  |  size: 1.12 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1.   has_attached_file :file, :styles => lambda { |media_file| media_file.instance.media_type == 'image' ? IMAGE_VERSIONS : {} },
  2.                     :storage => :s3,
  3.                     :path => ":storage_path",
  4.                     :bucket => lambda{ |media_file|  media_file.instance.bucket_name },
  5.                     :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
  6.                     :url => ":s3_eu_url"
  7.  
  8.   before_save :normalize_file_file_name
  9.  
  10.   # == Filename helper
  11.   Paperclip.interpolates :normalized_file_file_name do |attachment, style|
  12.     attachment.instance.normalized_file_file_name
  13.   end
  14.  
  15.   def normalized_file_file_name
  16.     transliterate(self.file_file_name)
  17.   end  
  18.  
  19.   def normalize_file_file_name
  20.     self.file_file_name = normalized_file_file_name
  21.   end
  22.  
  23.   def storage_path
  24.     if media_type == 'image'
  25.       ":attachment/:id/:style/:filename"
  26.     else
  27.       ":normalized_file_file_name"
  28.     end
  29.   end
  30.  
  31.   def transliterate(string)
  32.     s = Iconv.iconv('ascii//ignore//translit', 'utf-8', string).to_s
  33.     s.downcase!
  34.     s.gsub!(/'/, '')
  35.     s.gsub!(/[^A-Za-z0-9_\.]+/, ' ')
  36.     s.strip!
  37.     s.gsub!(/\ +/, '-')
  38.     return s
  39.   end