wulffeld_slug 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/wulffeld_slug/slug_include.rb +11 -6
- data/wulffeld_slug.gemspec +3 -3
- metadata +7 -5
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
@@ -24,14 +24,19 @@ module WulffeldSlug
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def cb_make_slug
|
27
|
+
return unless slug.blank?
|
28
|
+
|
27
29
|
a = [*send(slug_config[:fields])].reject {|f| f.blank? }.map {|f| f.is_a?(String) ? f : send(f) }.flatten
|
28
30
|
return if a.blank?
|
29
|
-
|
31
|
+
|
32
|
+
self.slug = to_unique_slug(a.join('-'))
|
30
33
|
end
|
31
34
|
|
32
35
|
def to_unique_slug(s, n=nil)
|
36
|
+
str_part = prepare_string(s)
|
37
|
+
|
33
38
|
loop do
|
34
|
-
slug =
|
39
|
+
slug = [str_part, n].compact.join('-')
|
35
40
|
return slug if slug_unique?(slug)
|
36
41
|
|
37
42
|
# First loop we do some optimistic searching.
|
@@ -39,7 +44,7 @@ module WulffeldSlug
|
|
39
44
|
b = 512
|
40
45
|
last_b = nil
|
41
46
|
loop do
|
42
|
-
slug =
|
47
|
+
slug = [str_part, b].join('-')
|
43
48
|
if slug_unique?(slug) || b < 1
|
44
49
|
last_b = b
|
45
50
|
break if b < 1
|
@@ -58,7 +63,7 @@ module WulffeldSlug
|
|
58
63
|
|
59
64
|
# Use dashes.
|
60
65
|
# http://www.mattcutts.com/blog/dashes-vs-underscores/
|
61
|
-
def
|
66
|
+
def prepare_string(s)
|
62
67
|
s.strip!
|
63
68
|
|
64
69
|
# Blow away apostrophes
|
@@ -128,8 +133,8 @@ module WulffeldSlug
|
|
128
133
|
s.strip!
|
129
134
|
s = s.split('-').each { |word| word.sub!(/^[a-z]/) {|m| slug_config[:capitalize] ? m.tr('a-z', 'A-Z') : m} }.join('-')
|
130
135
|
new_slug = s.blank? ? orig : s
|
131
|
-
if new_slug.length >
|
132
|
-
new_slug = new_slug[0..
|
136
|
+
if new_slug.length > 240
|
137
|
+
new_slug = new_slug[0..239]
|
133
138
|
else
|
134
139
|
new_slug
|
135
140
|
end
|
data/wulffeld_slug.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{wulffeld_slug}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Martin Moen Wulffeld"]
|
12
|
-
s.date = %q{2011-05-
|
12
|
+
s.date = %q{2011-05-29}
|
13
13
|
s.description = %q{}
|
14
14
|
s.email = %q{martin@wulffeld.org}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
]
|
27
27
|
s.homepage = %q{http://www.wulffeld.org/}
|
28
28
|
s.require_paths = ["lib"]
|
29
|
-
s.rubygems_version = %q{1.
|
29
|
+
s.rubygems_version = %q{1.5.0}
|
30
30
|
s.summary = %q{Slug generation.}
|
31
31
|
|
32
32
|
if s.respond_to? :specification_version then
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wulffeld_slug
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 5
|
10
|
+
version: 0.0.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Martin Moen Wulffeld
|
@@ -15,7 +15,8 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-05-
|
18
|
+
date: 2011-05-29 00:00:00 +02:00
|
19
|
+
default_executable:
|
19
20
|
dependencies: []
|
20
21
|
|
21
22
|
description: ""
|
@@ -34,6 +35,7 @@ files:
|
|
34
35
|
- lib/wulffeld_slug/slug.rb
|
35
36
|
- lib/wulffeld_slug/slug_include.rb
|
36
37
|
- wulffeld_slug.gemspec
|
38
|
+
has_rdoc: true
|
37
39
|
homepage: http://www.wulffeld.org/
|
38
40
|
licenses: []
|
39
41
|
|
@@ -63,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
65
|
requirements: []
|
64
66
|
|
65
67
|
rubyforge_project:
|
66
|
-
rubygems_version: 1.
|
68
|
+
rubygems_version: 1.5.0
|
67
69
|
signing_key:
|
68
70
|
specification_version: 3
|
69
71
|
summary: Slug generation.
|