wulffeld_slug 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.4
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
- self.slug = to_unique_slug(a.join('-')) if slug.blank?
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 = to_slug([s,n].compact.join('-'))
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 = to_slug([s, b].compact.join('-'))
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 to_slug(s)
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 > 200
132
- new_slug = new_slug[0..199]
136
+ if new_slug.length > 240
137
+ new_slug = new_slug[0..239]
133
138
  else
134
139
  new_slug
135
140
  end
@@ -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.4"
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-28}
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.7.2}
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: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
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-28 00:00:00 Z
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.7.2
68
+ rubygems_version: 1.5.0
67
69
  signing_key:
68
70
  specification_version: 3
69
71
  summary: Slug generation.