mongoid_localized_slug 0.1.2 → 0.1.3

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