mongoid_slug 3.1.0 → 3.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7f02a3cbeacca56a521287827c0a7650b8d0b07e
4
- data.tar.gz: 8b9d08075c34fabf26e1f5a27c635626520bf649
3
+ metadata.gz: 8ce4dfe55677a1b8cb8d39718cf595933dd7eae7
4
+ data.tar.gz: 799033738af175e6233c03268c73bafe0d17a259
5
5
  SHA512:
6
- metadata.gz: 175e6e37b7072bc78fe66959bc3990e7c095091d14ea100df80ace7d1312ff1b019503818797b5ae9a82451e261cf75976917fdfa583f9a5d8929cafb16ed744
7
- data.tar.gz: 77e501773a14a495ae9103623ca5375ea33e93f0973f50523c7161958b0c5fd1a0d4526a405fe137cf4260a02a708422669baba17860c350f2e780ca952ae912
6
+ metadata.gz: 50ff4db23d6243bb38678fc957d369ff8277607503a1c301d4841a8c835c93925100187549451d550cf4fea6b27b698e700de48962d12b9c5d0d3497fbb0c218
7
+ data.tar.gz: 56d4bb715d1977746ebcf7c7ca94f58040e3d083028dcaeff7b15fc9963ef256fd20fafbdcf2d9ccff51596a21da53b96efee562be13666b68d9777bad87f814
@@ -131,13 +131,21 @@ module Mongoid
131
131
  # @return [true]
132
132
  def build_slug
133
133
  _new_slug = find_unique_slug
134
+
135
+ #skip slug generation and use Mongoid id
136
+ #to find document instead
137
+ return true if _new_slug.size == 0
138
+
134
139
  self._slugs.delete(_new_slug) if self._slugs
140
+
135
141
  if !!self.history && self._slugs.is_a?(Array)
136
142
  self._slugs << _new_slug
137
143
  else
138
144
  self._slugs = [_new_slug]
139
145
  end
146
+
140
147
  true
148
+
141
149
  end
142
150
 
143
151
  # Finds a unique slug, were specified string used to generate a slug.
@@ -1,5 +1,5 @@
1
1
  module Mongoid #:nodoc:
2
2
  module Slug
3
- VERSION = '3.1.0'
3
+ VERSION = '3.1.1'
4
4
  end
5
5
  end
@@ -17,14 +17,19 @@ module Mongoid
17
17
  #I believe this will now fail
18
18
  x.name = 'te'
19
19
  x.valid?
20
- x.slug.should_not == 'te'
20
+ x.slug.should_not == 'te'
21
21
 
22
- #I believe this will persist the 'te'
22
+ #I believe this will persist the 'te'
23
23
  x.name = 'testb'
24
24
  x.save!
25
25
 
26
26
  end
27
27
 
28
+ it "doesn't persist blank strings" do
29
+ book = Book.create!(:title => "")
30
+ book.reload.slugs.should be_empty
31
+ end
32
+
28
33
  end
29
34
 
30
35
  context "when option skip_id_check is used with UUID _id " do
@@ -646,8 +651,8 @@ module Mongoid
646
651
  let!(:integer_id2) { IntegerId.new(:name => integer_id.id.to_s).tap { |d| d.id = 456; d.save } }
647
652
  let!(:string_id) { StringId.new(:name => "I have string ids").tap { |d| d.id = 'abc'; d.save } }
648
653
  let!(:string_id2) { StringId.new(:name => string_id.id.to_s).tap { |d| d.id = 'def'; d.save } }
649
- let!(:subject) { Subject.create(:title => "A Subject", :book => book) }
650
- let!(:subject2) { Subject.create(:title => "A Subject", :book => book2) }
654
+ let!(:subject) { Subject.create(:name => "A Subject", :book => book) }
655
+ let!(:subject2) { Subject.create(:name => "A Subject", :book => book2) }
651
656
  let!(:without_slug) { WithoutSlug.new().tap { |d| d.id = 456; d.save } }
652
657
 
653
658
  context "when the model does not use mongoid slugs" do
@@ -770,8 +775,8 @@ module Mongoid
770
775
  let!(:integer_id2) { IntegerId.new(:name => integer_id.id.to_s).tap { |d| d.id = 456; d.save } }
771
776
  let!(:string_id) { StringId.new(:name => "I have string ids").tap { |d| d.id = 'abc'; d.save } }
772
777
  let!(:string_id2) { StringId.new(:name => string_id.id.to_s).tap { |d| d.id = 'def'; d.save } }
773
- let!(:subject) { Subject.create(:title => "A Subject", :book => book) }
774
- let!(:subject2) { Subject.create(:title => "A Subject", :book => book2) }
778
+ let!(:subject) { Subject.create(:name => "A Subject", :book => book) }
779
+ let!(:subject2) { Subject.create(:name => "A Subject", :book => book2) }
775
780
 
776
781
  context "(single)" do
777
782
  context "and a document is found" do
@@ -835,18 +840,25 @@ module Mongoid
835
840
  book.to_param
836
841
  book.should_not be_persisted
837
842
  end
843
+
838
844
  end
839
845
 
840
846
  context "when called on an existing record with no slug" do
847
+ let!(:book_no_title) { Book.create() }
848
+
841
849
  before do
842
850
  Book.collection.insert(:title => "Proust and Signs")
843
851
  end
844
852
 
845
- it "should return the id" do
853
+ it "should return the id if there is no slug" do
846
854
  book = Book.first
847
855
  book.to_param.should == book.id.to_s
848
856
  book.reload.slugs.should be_empty
849
857
  end
858
+
859
+ it "should not persist the record" do
860
+ book_no_title.to_param.should == book_no_title._id.to_s
861
+ end
850
862
  end
851
863
  end
852
864
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_slug
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Saebjoernsen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-08 00:00:00.000000000 Z
11
+ date: 2013-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mongoid