module AttrSlug
Public Instance Methods
attr_slug(*attrs)
click to toggle source
# File lib/attr_slug/attr_slug.rb, line 13 def attr_slug(*attrs) class_attribute :slug_parts self.slug_parts = attrs || [title] end
derive_slug()
click to toggle source
# File lib/attr_slug/attr_slug.rb, line 19 def derive_slug return true if slug.present? parts = Array self.slug_parts derived_slug = parts.shift.to_s.parameterize next_number = 2 while self.class.where(slug: derived_slug).any? if next_part = parts.shift derived_slug += "-" + next_part.to_s.parameterize else derived_slug += "-#{next_number}" next_number += 1 end end self.slug = derived_slug end