mongoid_localized_slug 0.1.5 → 0.1.6

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.
@@ -1,5 +1,5 @@
1
1
  module Mongoid #:nodoc:
2
2
  module LocalizedSlug
3
- VERSION = '0.1.5'
3
+ VERSION = '0.1.6'
4
4
  end
5
5
  end
@@ -110,15 +110,17 @@ module Mongoid
110
110
  where_hash[slug_name] = pattern
111
111
  where_hash[:_id.ne] = excluded_id if excluded_id
112
112
 
113
- existing_slugs =
113
+ existing_slugs_criteria =
114
114
  only(slug_name).
115
115
  where(where_hash)
116
116
 
117
- # p existing_slugs
118
- existing_slugs = existing_slugs.map do |doc|
119
- doc.slug
120
- end.flatten
121
- # p existing_slugs
117
+ existing_slugs = []
118
+
119
+ existing_slugs_criteria.map do |doc|
120
+ doc.slug.each do |s|
121
+ existing_slugs << s if pattern.match(s)
122
+ end
123
+ end
122
124
 
123
125
  # Do not allow BSON::ObjectIds as slugs
124
126
  existing_slugs << slug if BSON::ObjectId.legal?(slug)
@@ -25,6 +25,17 @@ module Mongoid
25
25
  }
26
26
  end
27
27
 
28
+ it "generate unique slugs for every traslation" do
29
+ I18n.locale = :en
30
+ dup = Book.create(:title => "Bañeros 3")
31
+ I18n.locale = :es
32
+ dup.title = "Bañeros 3: superpoderosos"
33
+ dup.save
34
+ I18n.locale = :en
35
+ dup = Book.create(:title => "Bañeros 3")
36
+ dup.to_param.should eql "baneros-3-4"
37
+ end
38
+
28
39
  it "does not allow a BSON::ObjectId as use for a slug" do
29
40
  bad = Book.create(:title => "4ea0389f0364313d79104fb3")
30
41
  bad.to_param.should_not eql "4ea0389f0364313d79104fb3"
@@ -61,14 +72,6 @@ module Mongoid
61
72
  Book.find_by_slug(book.to_param).should eql book
62
73
  end
63
74
 
64
- it "find by any translated slug" do
65
- I18n.locale = :en
66
- book.to_param.should eql 'a-thousand-plateaus'
67
- I18n.locale = :es
68
- book.update_attribute :title, 'Platero y yo'
69
- book.to_param.should eql 'platero-y-yo'
70
- end
71
-
72
75
  context "using find" do
73
76
  it "finds by slug" do
74
77
  Book.find(book.to_param).should eql book
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_localized_slug
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-20 00:00:00.000000000 Z
12
+ date: 2012-07-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
16
- requirement: &70228521979540 !ruby/object:Gem::Requirement
16
+ requirement: &70185977181060 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '2.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70228521979540
24
+ version_requirements: *70185977181060
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: stringex
27
- requirement: &70228521978980 !ruby/object:Gem::Requirement
27
+ requirement: &70185977180040 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.3'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70228521978980
35
+ version_requirements: *70185977180040
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bson_ext
38
- requirement: &70228521978500 !ruby/object:Gem::Requirement
38
+ requirement: &70185977178960 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '1.6'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70228521978500
46
+ version_requirements: *70185977178960
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: pry
49
- requirement: &70228521977920 !ruby/object:Gem::Requirement
49
+ requirement: &70185977178020 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0.9'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70228521977920
57
+ version_requirements: *70185977178020
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rake
60
- requirement: &70228521977320 !ruby/object:Gem::Requirement
60
+ requirement: &70185977177520 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0.9'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70228521977320
68
+ version_requirements: *70185977177520
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
- requirement: &70228521976600 !ruby/object:Gem::Requirement
71
+ requirement: &70185977176940 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '2.8'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70228521976600
79
+ version_requirements: *70185977176940
80
80
  description: ! " a \n a ."
81
81
  email:
82
82
  - js@comenta-tv
@@ -111,7 +111,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
111
111
  version: '0'
112
112
  segments:
113
113
  - 0
114
- hash: 2152473175651165545
114
+ hash: 1889976069838048040
115
115
  required_rubygems_version: !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  segments:
122
122
  - 0
123
- hash: 2152473175651165545
123
+ hash: 1889976069838048040
124
124
  requirements: []
125
125
  rubyforge_project: mongoid_localized_slug
126
126
  rubygems_version: 1.8.11