gtl-sluggable 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/gtl-sluggable.rb +12 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd250eecc929116edd3cf6055bacadc5d1d6c327
|
4
|
+
data.tar.gz: ef4d9b3068297ca522f549732e9aef5fbabf490a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a2c5ee37a01612d4414c3a04c50dd63cbff344994c5dbfb62570ff943b29336edfe677770b614662544ad6eda152b8049313845bbd91761aec7deec4fff260d
|
7
|
+
data.tar.gz: 7ddecb8b52097a23e271ce5224fa799b39920af990b81914193bc74ae9a6123703b3552cf45848c8e406a08aab7f1d3be2b37679d495000c2c8fbbe23a76c070
|
data/lib/gtl-sluggable.rb
CHANGED
@@ -11,7 +11,17 @@ module Sluggable
|
|
11
11
|
module InstanceMethods
|
12
12
|
|
13
13
|
def generate_slug
|
14
|
-
|
14
|
+
str = to_slug(self.sluggable)
|
15
|
+
|
16
|
+
count = 2
|
17
|
+
obj = self.class.where(slug: str).first
|
18
|
+
while obj && obj != self
|
19
|
+
str = str + "-" + count.to_s
|
20
|
+
obj = self.class.where(slug: str).first
|
21
|
+
count += 1
|
22
|
+
end
|
23
|
+
|
24
|
+
self.slug = str.downcase
|
15
25
|
end
|
16
26
|
|
17
27
|
def to_slug(name)
|
@@ -34,7 +44,7 @@ module Sluggable
|
|
34
44
|
#strip off leading/trailing dash
|
35
45
|
ret.gsub! /\A[-\.]+|[-\.]+\z/,""
|
36
46
|
|
37
|
-
ret
|
47
|
+
ret
|
38
48
|
end
|
39
49
|
|
40
50
|
end
|