Sha256: 7e192dff2f5735200f9114c50d1c6c744a727dc9eb4b7d723d8e7f272fcf36d5

Contents?: true

Size: 795 Bytes

Versions: 54

Compression:

Stored size: 795 Bytes

Contents

require 'stringex'
require 'digest/md5'

class String
  def filename_to_slug
    s = self.to_url
    if s.blank?
      return Digest::MD5.hexdigest(self)
    end
    s
  end
end

module FilenameToSlug
  extend ActiveSupport::Concern
  included do
    before_post_process :filename_to_slug
  end

  def filename_to_slug
    if self.class.attachment_definitions
      self.class.attachment_definitions.each do |k,v|
        if self.send(k).file?
          full_file_name = self.send("#{k}_file_name")
          extension = File.extname(full_file_name)[1..-1]
          file_name = full_file_name[0..full_file_name.size-extension.size-1]
          self.send("#{k}").instance_write(:file_name, "#{file_name.filename_to_slug}.#{extension.filename_to_slug}")
        end
      end
    end
  end
end


Version data entries

54 entries across 54 versions & 2 rubygems

Version Path
enjoy_cms-0.3.7.4 lib/filename_to_slug.rb
enjoy_cms-0.3.7.3 lib/filename_to_slug.rb
enjoy_cms-0.3.7.2 lib/filename_to_slug.rb
enjoy_cms-0.3.7.1 lib/filename_to_slug.rb
enjoy_cms-0.3.7 lib/filename_to_slug.rb
enjoy_cms-0.3.6.2 lib/filename_to_slug.rb
enjoy_cms-0.3.6.1 lib/filename_to_slug.rb
enjoy_cms-0.3.6 lib/filename_to_slug.rb
enjoy_cms-0.3.5 lib/filename_to_slug.rb
enjoy_cms-0.3.4 lib/filename_to_slug.rb
enjoy_cms-0.3.3 lib/filename_to_slug.rb
enjoy_cms-0.3.2.1 lib/filename_to_slug.rb
enjoy_cms-0.3.2 lib/filename_to_slug.rb
enjoy_cms-0.3.1.2 lib/filename_to_slug.rb
enjoy_cms-0.3.1.1 lib/filename_to_slug.rb
enjoy_cms-0.3.1 lib/filename_to_slug.rb
enjoy_cms-0.3.0.4 lib/filename_to_slug.rb
enjoy_cms-0.3.0.3 lib/filename_to_slug.rb
enjoy_cms-0.3.0.2 lib/filename_to_slug.rb
enjoy_cms-0.2.1 lib/filename_to_slug.rb