4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 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
|