vidibus-uuid 0.3.7 → 0.3.8
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.
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/vidibus/uuid/mongoid.rb +4 -4
- data/lib/vidibus/uuid.rb +2 -2
- data/lib/vidibus/validate_uuid.rb +1 -1
- data/spec/vidibus/uuid/mongoid_spec.rb +9 -9
- data/spec/vidibus/uuid_spec.rb +10 -10
- data/spec/vidibus/validate_uuid_spec.rb +6 -6
- data/vidibus-uuid.gemspec +5 -5
- metadata +7 -7
data/Rakefile
CHANGED
@@ -13,7 +13,7 @@ begin
|
|
13
13
|
gem.email = "andre@vidibus.com"
|
14
14
|
gem.homepage = "http://github.com/vidibus/vidibus-uuid"
|
15
15
|
gem.authors = ["Andre Pankratz"]
|
16
|
-
gem.add_dependency "mongoid", "~> 2.0.0.beta.
|
16
|
+
gem.add_dependency "mongoid", "~> 2.0.0.beta.20"
|
17
17
|
gem.add_dependency "uuid", "~> 2.3.1"
|
18
18
|
end
|
19
19
|
Jeweler::GemcutterTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.8
|
data/lib/vidibus/uuid/mongoid.rb
CHANGED
@@ -2,21 +2,21 @@ module Vidibus
|
|
2
2
|
module Uuid
|
3
3
|
module Mongoid
|
4
4
|
extend ActiveSupport::Concern
|
5
|
-
|
5
|
+
|
6
6
|
included do
|
7
7
|
field :uuid
|
8
8
|
index :uuid, :unique => true
|
9
9
|
before_validation :generate_uuid
|
10
10
|
validates :uuid, :uniqueness => true, :uuid => true
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
# Returns UUID as param for URLs.
|
14
14
|
def to_param
|
15
15
|
uuid
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
private
|
19
|
-
|
19
|
+
|
20
20
|
# Sets unique UUID unless uuid is present.
|
21
21
|
def generate_uuid
|
22
22
|
self.uuid ||= Vidibus::Uuid.generate
|
data/lib/vidibus/uuid.rb
CHANGED
@@ -16,42 +16,42 @@ describe "Vidibus::Uuid::Mongoid" do
|
|
16
16
|
let(:model) { Model.create }
|
17
17
|
let(:new_model) { Model.new }
|
18
18
|
let(:uuid) { Vidibus::Uuid.generate }
|
19
|
-
|
19
|
+
|
20
20
|
it "should add an uuid field to model" do
|
21
21
|
model.should respond_to(:uuid)
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
it "should generate a valid UUID before creation" do
|
25
25
|
model.uuid.length.should eql(32)
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
it "should keep the UUID persistent" do
|
29
29
|
uuid = model.uuid
|
30
30
|
model.save!
|
31
31
|
model.uuid.should eql(uuid)
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
it "should allow assignment of UUID" do
|
35
35
|
new_model.uuid = uuid
|
36
36
|
new_model.save
|
37
37
|
new_model.uuid.should eql(uuid)
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
it "should allow changes to UUID" do
|
41
41
|
model.update_attributes(:uuid => uuid)
|
42
42
|
model.uuid.should eql(uuid)
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
it "should verify format of UUID" do
|
46
46
|
model.update_attributes(:uuid => "as")
|
47
47
|
model.errors[:uuid].length.should eql(1)
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
50
|
it "should verify uniqueness of UUID in class" do
|
51
51
|
another_model = Model.create(:uuid => model.uuid)
|
52
52
|
another_model.errors[:uuid].should have(1).error
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
it "should verify uniqueness of UUID in embedded documents" do
|
56
56
|
first_child = model.children.create!
|
57
57
|
second_child = model.children.create!
|
@@ -60,7 +60,7 @@ describe "Vidibus::Uuid::Mongoid" do
|
|
60
60
|
model.reload
|
61
61
|
model.children[0].uuid.should_not eql(model.children[1].uuid)
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
it "should set UUID as default param" do
|
65
65
|
model.should respond_to(:to_param)
|
66
66
|
model.to_param.should eql(model.uuid)
|
data/spec/vidibus/uuid_spec.rb
CHANGED
@@ -2,46 +2,46 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe "Vidibus::Uuid" do
|
4
4
|
describe ".generate" do
|
5
|
-
|
5
|
+
|
6
6
|
end
|
7
7
|
it "should return a compact UUID" do
|
8
8
|
uuid = Vidibus::Uuid.generate
|
9
9
|
uuid.length.should eql(32)
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
describe ".validate" do
|
13
13
|
it "should validate a valid compact UUID" do
|
14
14
|
Vidibus::Uuid.validate("ddeb4500668e012d47bb58b035f038ab").should be_true
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
it "should validate a valid compact UUID that is given as symbol" do
|
18
18
|
Vidibus::Uuid.validate(:ddeb4500668e012d47bb58b035f038ab).should be_true
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
it "should not validate an UUID that is not compact" do
|
22
22
|
Vidibus::Uuid.validate("87a96db0-9a91-012d-59e4-58b035f038ab").should be_false
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
it "should not validate a string that looks like an UUID, but is too short" do
|
26
26
|
Vidibus::Uuid.validate("dbeb4500668e0f839aefg928930efcca").should be_false
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
it "should not validate a random symbol" do
|
30
30
|
Vidibus::Uuid.validate(:something).should be_false
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
it "should not validate a random string with 32 characters" do
|
34
34
|
Vidibus::Uuid.validate("somerandomstringwith32characters").should be_false
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
it "should not validate a string containing non-hex characters" do
|
38
38
|
Vidibus::Uuid.validate("xdeb4500668e012d47bb58b035f038ab").should be_false
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
41
|
it "should not validate nil" do
|
42
42
|
Vidibus::Uuid.validate(nil).should be_false
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
it "should not validate an empty string" do
|
46
46
|
Vidibus::Uuid.validate("").should be_false
|
47
47
|
end
|
@@ -9,33 +9,33 @@ end
|
|
9
9
|
|
10
10
|
describe "Vidibus::ValidateUuid::UuidValidator" do
|
11
11
|
let(:model) { ModelWithValidations.new }
|
12
|
-
|
12
|
+
|
13
13
|
it "should be available as uuid validator for attribute required_uuid" do
|
14
14
|
ModelWithValidations.validators_on(:required_uuid).first.should be_a_kind_of(Vidibus::ValidateUuid::UuidValidator)
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
it "should be available as uuid validator for attribute optional_uuid" do
|
18
18
|
ModelWithValidations.validators_on(:optional_uuid).first.should be_a_kind_of(Vidibus::ValidateUuid::UuidValidator)
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
it "should validate valid UUIDs" do
|
22
22
|
model.required_uuid = "ddeb4500668e012d47bb58b035f038ab"
|
23
23
|
model.should be_valid
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
it "should add an error for invalid UUIDs" do
|
27
27
|
model.required_uuid = "ddeb4500668e0"
|
28
28
|
model.should be_invalid
|
29
29
|
model.errors[:required_uuid].should have(1).error
|
30
30
|
model.errors[:required_uuid].first.should eql("is not a valid UUID")
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
it "should add an error on required_uuid, if empty" do
|
34
34
|
model.required_uuid = ''
|
35
35
|
model.should be_invalid
|
36
36
|
model.errors[:required_uuid].should have(1).error
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
it "should allow emtpy optional_uuid" do
|
40
40
|
model.required_uuid = "ddeb4500668e012d47bb58b035f038ab"
|
41
41
|
model.optional_uuid = ""
|
data/vidibus-uuid.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{vidibus-uuid}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.8"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Andre Pankratz"]
|
12
|
-
s.date = %q{2010-09-
|
12
|
+
s.date = %q{2010-09-23}
|
13
13
|
s.description = %q{Provides UUID generation for Mongoid models. It includes a validator for UUIDs.}
|
14
14
|
s.email = %q{andre@vidibus.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -54,14 +54,14 @@ Gem::Specification.new do |s|
|
|
54
54
|
s.specification_version = 3
|
55
55
|
|
56
56
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
57
|
-
s.add_runtime_dependency(%q<mongoid>, ["~> 2.0.0.beta.
|
57
|
+
s.add_runtime_dependency(%q<mongoid>, ["~> 2.0.0.beta.20"])
|
58
58
|
s.add_runtime_dependency(%q<uuid>, ["~> 2.3.1"])
|
59
59
|
else
|
60
|
-
s.add_dependency(%q<mongoid>, ["~> 2.0.0.beta.
|
60
|
+
s.add_dependency(%q<mongoid>, ["~> 2.0.0.beta.20"])
|
61
61
|
s.add_dependency(%q<uuid>, ["~> 2.3.1"])
|
62
62
|
end
|
63
63
|
else
|
64
|
-
s.add_dependency(%q<mongoid>, ["~> 2.0.0.beta.
|
64
|
+
s.add_dependency(%q<mongoid>, ["~> 2.0.0.beta.20"])
|
65
65
|
s.add_dependency(%q<uuid>, ["~> 2.3.1"])
|
66
66
|
end
|
67
67
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vidibus-uuid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 8
|
10
|
+
version: 0.3.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andre Pankratz
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-09-
|
18
|
+
date: 2010-09-23 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -26,14 +26,14 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
hash:
|
29
|
+
hash: 62196427
|
30
30
|
segments:
|
31
31
|
- 2
|
32
32
|
- 0
|
33
33
|
- 0
|
34
34
|
- beta
|
35
|
-
-
|
36
|
-
version: 2.0.0.beta.
|
35
|
+
- 20
|
36
|
+
version: 2.0.0.beta.20
|
37
37
|
type: :runtime
|
38
38
|
version_requirements: *id001
|
39
39
|
- !ruby/object:Gem::Dependency
|