module Sluggable
Public Instance Methods
append_count(slug, count)
click to toggle source
# File lib/sluggable_gem_mweick.rb, line 26 def append_count(slug, count) if slug.split('-').last.to_i != 0 slug.split('-').slice(0...-1).join('-') + '-' + count.to_s else slug + '-' + count.to_s end end
generate_slug!()
click to toggle source
# File lib/sluggable_gem_mweick.rb, line 10 def generate_slug! slug = to_unique_slug(self.title) post = Post.find_by slug: slug count = 2 while post && post != self slug = append_count(slug, count) post = Post.find_by slug: slug count += 1 end self.slug = slug end
to_unique_slug(title)
click to toggle source
# File lib/sluggable_gem_mweick.rb, line 22 def to_unique_slug(title) slug = title.strip.gsub(/\s*[^A-Za-z0-9]\s*/, '-').gsub(/-+/, '-').downcase end