module Sluggable

Public Instance Methods

append_suffix(str, count) click to toggle source
# File lib/sluggable_kevinh.rb, line 27
def append_suffix(str, count)
  if str.split("-").last.to_i != 0
    return str.split("-").slice(0...-1).join("-") + "-" + count.to_s
  else
    return str + "-" + count.to_s
  end
end
generate_slug() click to toggle source
# File lib/sluggable_kevinh.rb, line 13
def generate_slug
  the_slug = self.send(self.class.slug_column).parameterize
  obj = self.class.find_by(slug: the_slug)
  count = 2

  while obj && obj != self
    the_slug = append_suffix(the_slug, count)
    obj = self.class.find_by(slug: the_slug)
    count += 1
  end

  self.slug = the_slug
end
to_param() click to toggle source
# File lib/sluggable_kevinh.rb, line 9
def to_param
  self.slug
end