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 CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wulffeld_slug (0.0.24)
4
+ wulffeld_slug (0.0.25)
5
5
  activesupport (>= 3.1.0)
6
6
  babosa (>= 0.3.7)
7
7
  wulffeld_slug
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.24
1
+ 0.0.25
@@ -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
- b = slug_config[:loop_start]
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 /= 2
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
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "wulffeld_slug"
8
- s.version = "0.0.24"
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