mongoid_localized_slug 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  module Mongoid #:nodoc:
2
2
  module LocalizedSlug
3
- VERSION = '0.1.2'
3
+ VERSION = '0.1.3'
4
4
  end
5
5
  end
@@ -149,7 +149,11 @@ module Mongoid
149
149
  #
150
150
  # @return [true]
151
151
  def build_slug
152
- translations = self.send("#{slugged_attribute}_translations")
152
+ if self.respond_to?("#{slugged_attribute}_translations")
153
+ translations = self.send("#{slugged_attribute}_translations")
154
+ else
155
+ translations = { I18n.locale.to_s => self.send(slugged_attribute) }
156
+ end
153
157
  slugs = []
154
158
  trans_hash = {}
155
159
  translations.each do |lang, text|
@@ -0,0 +1,6 @@
1
+ class Car
2
+ include Mongoid::Document
3
+ include Mongoid::LocalizedSlug
4
+ field :brand
5
+ slug :brand, index: true
6
+ end
@@ -332,5 +332,34 @@ module Mongoid
332
332
  end
333
333
 
334
334
  end
335
+
336
+ context "when the field is not localized" do
337
+ let!(:car) { Car.create(:brand => "Mercedes Benz") }
338
+
339
+ it "generates a slug" do
340
+ car.to_param.should eql "mercedes-benz"
341
+ end
342
+
343
+ it "updates the slug" do
344
+ car.brand = "Fiat"
345
+ car.save
346
+ car.to_param.should eql "fiat"
347
+ end
348
+
349
+ it "generates a unique slug by appending a counter to duplicate text" do
350
+ 15.times{ |x|
351
+ dup = Car.create(:brand => car.brand)
352
+ dup.to_param.should eql "mercedes-benz-#{x+1}"
353
+ }
354
+ end
355
+
356
+ it "finds by slug using find_by_slug" do
357
+ Car.find_by_slug(car.to_param).should eql car
358
+ end
359
+
360
+ it "finds by slug using find" do
361
+ Car.find(car.to_param).should eql car
362
+ end
363
+ end
335
364
  end
336
365
  end
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.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-07-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
16
- requirement: &70297359375900 !ruby/object:Gem::Requirement
16
+ requirement: &70151326561060 !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: *70297359375900
24
+ version_requirements: *70151326561060
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: stringex
27
- requirement: &70297359375380 !ruby/object:Gem::Requirement
27
+ requirement: &70151326560440 !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: *70297359375380
35
+ version_requirements: *70151326560440
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bson_ext
38
- requirement: &70297359374900 !ruby/object:Gem::Requirement
38
+ requirement: &70151326559760 !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: *70297359374900
46
+ version_requirements: *70151326559760
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: pry
49
- requirement: &70297359374400 !ruby/object:Gem::Requirement
49
+ requirement: &70151326558220 !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: *70297359374400
57
+ version_requirements: *70151326558220
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rake
60
- requirement: &70297359373860 !ruby/object:Gem::Requirement
60
+ requirement: &70151326557760 !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: *70297359373860
68
+ version_requirements: *70151326557760
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
- requirement: &70297359373240 !ruby/object:Gem::Requirement
71
+ requirement: &70151326573520 !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: *70297359373240
79
+ version_requirements: *70151326573520
80
80
  description: ! " a \n a ."
81
81
  email:
82
82
  - js@comenta-tv
@@ -92,6 +92,7 @@ files:
92
92
  - README.md
93
93
  - spec/models/animal.rb
94
94
  - spec/models/book.rb
95
+ - spec/models/car.rb
95
96
  - spec/models/friend.rb
96
97
  - spec/models/person.rb
97
98
  - spec/mongoid/slug_spec.rb
@@ -110,7 +111,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
110
111
  version: '0'
111
112
  segments:
112
113
  - 0
113
- hash: 4575588913745447868
114
+ hash: 825668001178950118
114
115
  required_rubygems_version: !ruby/object:Gem::Requirement
115
116
  none: false
116
117
  requirements:
@@ -119,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
120
  version: '0'
120
121
  segments:
121
122
  - 0
122
- hash: 4575588913745447868
123
+ hash: 825668001178950118
123
124
  requirements: []
124
125
  rubyforge_project: mongoid_localized_slug
125
126
  rubygems_version: 1.8.11
@@ -129,6 +130,7 @@ summary: Generates a URL slug in a Mongoid model for localized fields
129
130
  test_files:
130
131
  - spec/models/animal.rb
131
132
  - spec/models/book.rb
133
+ - spec/models/car.rb
132
134
  - spec/models/friend.rb
133
135
  - spec/models/person.rb
134
136
  - spec/mongoid/slug_spec.rb