mongoid_token 3.0.0 → 4.0.0
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 +4 -4
- data/README.md +7 -1
- data/lib/mongoid/token/collisions.rb +4 -4
- data/lib/version.rb +1 -1
- data/mongoid_token.gemspec +1 -1
- data/spec/mongoid/token/collisions_spec.rb +5 -5
- data/spec/mongoid/token_spec.rb +1 -1
- data/spec/spec_helper.rb +3 -7
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e750cdbf69b5f26f50a338219aad4efc71cb3dbb
|
|
4
|
+
data.tar.gz: 13de3c6572824b74fee06ad087549468a84d8d8a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fcffc9de812baff70b946e745d43f09bd3994f6d34505cf6588cac2f9c7b6f876fcf25e212dae6f2fb3fdf6407ef7bf605feb7157784beb5f0b5848cb0705e57
|
|
7
|
+
data.tar.gz: 7b4760b632cefc19c3185537ea9365e044a949d29534c7b20cd498dbb0a1c666783ebe261a134e694b3b3c387cbd38f6bc927aece5cec73cd91c0261f1f38a3a
|
data/README.md
CHANGED
|
@@ -20,7 +20,13 @@ Into something more like this:
|
|
|
20
20
|
|
|
21
21
|
In your gemfile, add:
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
```ruby
|
|
24
|
+
# For mongoid < 5
|
|
25
|
+
gem 'mongoid_token', '~> 3.0.0'
|
|
26
|
+
|
|
27
|
+
# For mongoid >= 5
|
|
28
|
+
gem 'mongoid_token', '~> 4.0.0'
|
|
29
|
+
```
|
|
24
30
|
|
|
25
31
|
Then update your bundle
|
|
26
32
|
|
|
@@ -5,7 +5,7 @@ module Mongoid
|
|
|
5
5
|
retries = resolver.retry_count
|
|
6
6
|
begin
|
|
7
7
|
yield
|
|
8
|
-
rescue
|
|
8
|
+
rescue Mongo::Error::OperationFailure => e
|
|
9
9
|
if is_duplicate_token_error?(e, self, resolver.field_name)
|
|
10
10
|
if (retries -= 1) >= 0
|
|
11
11
|
resolver.create_new_token_for(self)
|
|
@@ -24,9 +24,9 @@ module Mongoid
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def is_duplicate_token_error?(err, document, field_name)
|
|
27
|
-
|
|
28
|
-
err.
|
|
29
|
-
err.
|
|
27
|
+
err.message =~ /(11000|11001)/ &&
|
|
28
|
+
err.message =~ /dup key/ &&
|
|
29
|
+
err.message =~ /"#{document.send(field_name)}"/
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
end
|
data/lib/version.rb
CHANGED
data/mongoid_token.gemspec
CHANGED
|
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
|
|
14
14
|
s.description = %q{Mongoid token is a gem for creating random, unique tokens for mongoid documents. Highly configurable and great for making URLs a little more compact.}
|
|
15
15
|
|
|
16
16
|
s.rubyforge_project = "mongoid_token"
|
|
17
|
-
s.add_dependency 'mongoid', '~>
|
|
17
|
+
s.add_dependency 'mongoid', '~> 5.0.0'
|
|
18
18
|
|
|
19
19
|
s.files = `git ls-files`.split("\n")
|
|
20
20
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
@@ -17,7 +17,7 @@ describe Mongoid::Token::Collisions do
|
|
|
17
17
|
it "should raise an error after the first try" do
|
|
18
18
|
resolver.stub(:retry_count).and_return(0)
|
|
19
19
|
attempts = 0
|
|
20
|
-
expect{document.resolve_token_collisions(resolver) { attempts += 1; raise
|
|
20
|
+
expect{document.resolve_token_collisions(resolver) { attempts += 1; raise Mongo::Error::OperationFailure }}.to raise_error Mongoid::Token::CollisionRetriesExceeded
|
|
21
21
|
expect(attempts).to eq 1
|
|
22
22
|
end
|
|
23
23
|
end
|
|
@@ -26,7 +26,7 @@ describe Mongoid::Token::Collisions do
|
|
|
26
26
|
it "should raise an error after retrying once" do
|
|
27
27
|
resolver.stub(:retry_count).and_return(1)
|
|
28
28
|
attempts = 0
|
|
29
|
-
expect{document.resolve_token_collisions(resolver) { attempts += 1; raise
|
|
29
|
+
expect{document.resolve_token_collisions(resolver) { attempts += 1; raise Mongo::Error::OperationFailure }}.to raise_error Mongoid::Token::CollisionRetriesExceeded
|
|
30
30
|
expect(attempts).to eq 2
|
|
31
31
|
end
|
|
32
32
|
end
|
|
@@ -35,7 +35,7 @@ describe Mongoid::Token::Collisions do
|
|
|
35
35
|
it "should raise an error after retrying" do
|
|
36
36
|
resolver.stub(:retry_count).and_return(3)
|
|
37
37
|
attempts = 0
|
|
38
|
-
expect{document.resolve_token_collisions(resolver) { attempts += 1; raise
|
|
38
|
+
expect{document.resolve_token_collisions(resolver) { attempts += 1; raise Mongo::Error::OperationFailure }}.to raise_error Mongoid::Token::CollisionRetriesExceeded
|
|
39
39
|
expect(attempts).to eq 4
|
|
40
40
|
end
|
|
41
41
|
end
|
|
@@ -44,7 +44,7 @@ describe Mongoid::Token::Collisions do
|
|
|
44
44
|
it "should bubble the operation failure" do
|
|
45
45
|
document.stub(:is_duplicate_token_error?).and_return(false)
|
|
46
46
|
resolver.stub(:retry_count).and_return(3)
|
|
47
|
-
e =
|
|
47
|
+
e = Mongo::Error::OperationFailure.new("nope")
|
|
48
48
|
expect{document.resolve_token_collisions(resolver) { raise e }}.to raise_error(e)
|
|
49
49
|
end
|
|
50
50
|
end
|
|
@@ -84,7 +84,7 @@ describe Mongoid::Token::Collisions do
|
|
|
84
84
|
context "when there is a duplicate key error" do
|
|
85
85
|
it "should return true" do
|
|
86
86
|
document.stub("token").and_return("tokenvalue123")
|
|
87
|
-
err = double("
|
|
87
|
+
err = double("Mongo::Error::OperationFailure")
|
|
88
88
|
err.stub("details").and_return do
|
|
89
89
|
{
|
|
90
90
|
"err" => "E11000 duplicate key error index: mongoid_token_test.links.$token_1 dup key: { : \"tokenvalue123\" }",
|
data/spec/mongoid/token_spec.rb
CHANGED
|
@@ -255,7 +255,7 @@ describe Mongoid::Token do
|
|
|
255
255
|
it "should raise an operation failure" do
|
|
256
256
|
duplicate_name = "Got Duped."
|
|
257
257
|
document_class.create!(:name => duplicate_name)
|
|
258
|
-
expect{ document_class.create!(:name => duplicate_name) }.to raise_exception(
|
|
258
|
+
expect{ document_class.create!(:name => duplicate_name) }.to raise_exception(Mongo::Error::OperationFailure)
|
|
259
259
|
end
|
|
260
260
|
end
|
|
261
261
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -11,6 +11,8 @@ require 'mongoid_token'
|
|
|
11
11
|
ENV['MONGOID_ENV'] = "test"
|
|
12
12
|
|
|
13
13
|
RSpec.configure do |config|
|
|
14
|
+
Mongo::Logger.logger.level = Logger::ERROR
|
|
15
|
+
|
|
14
16
|
config.include Mongoid::Matchers
|
|
15
17
|
config.before(:suite) do
|
|
16
18
|
DatabaseCleaner.strategy = :truncation
|
|
@@ -23,11 +25,5 @@ RSpec.configure do |config|
|
|
|
23
25
|
end
|
|
24
26
|
|
|
25
27
|
Mongoid.configure do |config|
|
|
26
|
-
config.
|
|
27
|
-
default: {
|
|
28
|
-
database: "mongoid_token_test",
|
|
29
|
-
hosts: [ "localhost:#{ENV['BOXEN_MONGODB_PORT'] || 27017}" ],
|
|
30
|
-
options: {}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
28
|
+
config.connect_to("mongoid_token_test", {})
|
|
33
29
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mongoid_token
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 4.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nicholas Bruning
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-
|
|
11
|
+
date: 2015-11-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: mongoid
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 5.0.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
26
|
+
version: 5.0.0
|
|
27
27
|
description: Mongoid token is a gem for creating random, unique tokens for mongoid
|
|
28
28
|
documents. Highly configurable and great for making URLs a little more compact.
|
|
29
29
|
email:
|
|
@@ -78,7 +78,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
78
78
|
version: '0'
|
|
79
79
|
requirements: []
|
|
80
80
|
rubyforge_project: mongoid_token
|
|
81
|
-
rubygems_version: 2.4.
|
|
81
|
+
rubygems_version: 2.4.5
|
|
82
82
|
signing_key:
|
|
83
83
|
specification_version: 4
|
|
84
84
|
summary: A little random, unique token generator for Mongoid documents.
|