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 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.