module Sluggable

Public Instance Methods

generate_slug(property) click to toggle source
# File lib/sluggable.rb, line 4
def generate_slug(property)
  generated_slug = self[property].strip.gsub(/[[:space:]]/, "-").gsub(/[^A-Za-z0-9\-]/, "").gsub(/-+/, "-").downcase

  size = nil
  counter = 0
  until size == 0
    if counter == 0
      size = self.class.where('slug LIKE ?', "#{generated_slug}").size
    else
      size = self.class.where('slug LIKE ?', "#{generated_slug}-#{counter}").size
    end
    counter+=1 if size > 0
  end

  generated_slug = "#{generated_slug}-#{counter}" if counter > 0
  self.slug = generated_slug
end
to_param() click to toggle source
# File lib/sluggable.rb, line 22
def to_param
  self.slug
end