wulffeld_slug 0.0.24 → 0.0.25
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/VERSION +1 -1
- data/lib/wulffeld_slug/slug.rb +1 -1
- data/lib/wulffeld_slug/slug_include.rb +15 -3
- data/wulffeld_slug.gemspec +43 -1
- metadata +490 -336
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.25
|
data/lib/wulffeld_slug/slug.rb
CHANGED
@@ -2,7 +2,7 @@ module WulffeldSlug
|
|
2
2
|
module Slug
|
3
3
|
def has_slug(fields, options = {})
|
4
4
|
class_attribute :slug_config
|
5
|
-
self.slug_config = {:case => :downcase, :loop_start => 64, :fields => fields}.merge(options)
|
5
|
+
self.slug_config = {:case => :downcase, :loop_start => 64, :blank_loop_start => 1024, :fields => fields}.merge(options)
|
6
6
|
|
7
7
|
include WulffeldSlug::SlugInclude
|
8
8
|
end
|
@@ -57,7 +57,15 @@ module WulffeldSlug
|
|
57
57
|
|
58
58
|
# First loop we do some optimistic searching.
|
59
59
|
if n.nil?
|
60
|
-
|
60
|
+
# There's often a difference between adding a number to a slug where the string is present
|
61
|
+
# and one where we only have the number for the final slug.
|
62
|
+
# :blank_loop_start and :blank_loop_chunk helps speed up the looping on blank slugs.
|
63
|
+
if str_part.blank?
|
64
|
+
b = slug_config[:blank_loop_start]
|
65
|
+
else
|
66
|
+
b = slug_config[:loop_start]
|
67
|
+
end
|
68
|
+
|
61
69
|
last_b = nil
|
62
70
|
loop do
|
63
71
|
slug = [str_part, b].reject(&:blank?).join('-')
|
@@ -68,8 +76,12 @@ module WulffeldSlug
|
|
68
76
|
n = last_b
|
69
77
|
break
|
70
78
|
end
|
71
|
-
|
72
|
-
b
|
79
|
+
|
80
|
+
if str_part.blank? && slug_config[:blank_loop_chunk] && b - slug_config[:blank_loop_chunk] > slug_config[:blank_loop_chunk]
|
81
|
+
b -= slug_config[:blank_loop_chunk]
|
82
|
+
else
|
83
|
+
b /= 2
|
84
|
+
end
|
73
85
|
end
|
74
86
|
end
|
75
87
|
n ||= 0
|
data/wulffeld_slug.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "wulffeld_slug"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.25"
|
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"]
|
@@ -209,6 +209,20 @@ Gem::Specification.new do |s|
|
|
209
209
|
s.add_development_dependency(%q<jeweler>, [">= 1.6.2"])
|
210
210
|
s.add_development_dependency(%q<rdoc>, [">= 3.8"])
|
211
211
|
s.add_development_dependency(%q<rspec>, [">= 2.7.0"])
|
212
|
+
s.add_development_dependency(%q<mongoid>, ["= 2.2.0"])
|
213
|
+
s.add_development_dependency(%q<bson>, ["= 1.3.0"])
|
214
|
+
s.add_development_dependency(%q<bson_ext>, ["= 1.3.0"])
|
215
|
+
s.add_development_dependency(%q<bundler>, [">= 1.0.21"])
|
216
|
+
s.add_development_dependency(%q<jeweler>, [">= 1.6.2"])
|
217
|
+
s.add_development_dependency(%q<rdoc>, [">= 3.8"])
|
218
|
+
s.add_development_dependency(%q<rspec>, [">= 2.7.0"])
|
219
|
+
s.add_development_dependency(%q<mongoid>, ["= 2.2.0"])
|
220
|
+
s.add_development_dependency(%q<bson>, ["= 1.3.0"])
|
221
|
+
s.add_development_dependency(%q<bson_ext>, ["= 1.3.0"])
|
222
|
+
s.add_development_dependency(%q<bundler>, [">= 1.0.21"])
|
223
|
+
s.add_development_dependency(%q<jeweler>, [">= 1.6.2"])
|
224
|
+
s.add_development_dependency(%q<rdoc>, [">= 3.8"])
|
225
|
+
s.add_development_dependency(%q<rspec>, [">= 2.7.0"])
|
212
226
|
s.add_runtime_dependency(%q<babosa>, [">= 0.3.7"])
|
213
227
|
s.add_runtime_dependency(%q<activesupport>, [">= 3.1.0"])
|
214
228
|
else
|
@@ -377,6 +391,20 @@ Gem::Specification.new do |s|
|
|
377
391
|
s.add_dependency(%q<jeweler>, [">= 1.6.2"])
|
378
392
|
s.add_dependency(%q<rdoc>, [">= 3.8"])
|
379
393
|
s.add_dependency(%q<rspec>, [">= 2.7.0"])
|
394
|
+
s.add_dependency(%q<mongoid>, ["= 2.2.0"])
|
395
|
+
s.add_dependency(%q<bson>, ["= 1.3.0"])
|
396
|
+
s.add_dependency(%q<bson_ext>, ["= 1.3.0"])
|
397
|
+
s.add_dependency(%q<bundler>, [">= 1.0.21"])
|
398
|
+
s.add_dependency(%q<jeweler>, [">= 1.6.2"])
|
399
|
+
s.add_dependency(%q<rdoc>, [">= 3.8"])
|
400
|
+
s.add_dependency(%q<rspec>, [">= 2.7.0"])
|
401
|
+
s.add_dependency(%q<mongoid>, ["= 2.2.0"])
|
402
|
+
s.add_dependency(%q<bson>, ["= 1.3.0"])
|
403
|
+
s.add_dependency(%q<bson_ext>, ["= 1.3.0"])
|
404
|
+
s.add_dependency(%q<bundler>, [">= 1.0.21"])
|
405
|
+
s.add_dependency(%q<jeweler>, [">= 1.6.2"])
|
406
|
+
s.add_dependency(%q<rdoc>, [">= 3.8"])
|
407
|
+
s.add_dependency(%q<rspec>, [">= 2.7.0"])
|
380
408
|
s.add_dependency(%q<babosa>, [">= 0.3.7"])
|
381
409
|
s.add_dependency(%q<activesupport>, [">= 3.1.0"])
|
382
410
|
end
|
@@ -546,6 +574,20 @@ Gem::Specification.new do |s|
|
|
546
574
|
s.add_dependency(%q<jeweler>, [">= 1.6.2"])
|
547
575
|
s.add_dependency(%q<rdoc>, [">= 3.8"])
|
548
576
|
s.add_dependency(%q<rspec>, [">= 2.7.0"])
|
577
|
+
s.add_dependency(%q<mongoid>, ["= 2.2.0"])
|
578
|
+
s.add_dependency(%q<bson>, ["= 1.3.0"])
|
579
|
+
s.add_dependency(%q<bson_ext>, ["= 1.3.0"])
|
580
|
+
s.add_dependency(%q<bundler>, [">= 1.0.21"])
|
581
|
+
s.add_dependency(%q<jeweler>, [">= 1.6.2"])
|
582
|
+
s.add_dependency(%q<rdoc>, [">= 3.8"])
|
583
|
+
s.add_dependency(%q<rspec>, [">= 2.7.0"])
|
584
|
+
s.add_dependency(%q<mongoid>, ["= 2.2.0"])
|
585
|
+
s.add_dependency(%q<bson>, ["= 1.3.0"])
|
586
|
+
s.add_dependency(%q<bson_ext>, ["= 1.3.0"])
|
587
|
+
s.add_dependency(%q<bundler>, [">= 1.0.21"])
|
588
|
+
s.add_dependency(%q<jeweler>, [">= 1.6.2"])
|
589
|
+
s.add_dependency(%q<rdoc>, [">= 3.8"])
|
590
|
+
s.add_dependency(%q<rspec>, [">= 2.7.0"])
|
549
591
|
s.add_dependency(%q<babosa>, [">= 0.3.7"])
|
550
592
|
s.add_dependency(%q<activesupport>, [">= 3.1.0"])
|
551
593
|
end
|