toystore-mongo 0.6.0 → 0.7.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.
- data/Gemfile +3 -1
- data/lib/toy/extensions/bson_object_id.rb +9 -0
- data/lib/toy/identity/object_id_key_factory.rb +13 -0
- data/lib/toy/mongo/version.rb +1 -1
- data/lib/toy/mongo.rb +1 -1
- data/spec/toy/extensions/bson_object_id_spec.rb +41 -0
- data/spec/toy/identity/object_id_key_factory_spec.rb +37 -0
- data/toystore-mongo.gemspec +2 -2
- metadata +16 -10
data/Gemfile
CHANGED
data/lib/toy/mongo/version.rb
CHANGED
data/lib/toy/mongo.rb
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe "BSON::ObjectId.to_store" do
|
4
|
+
it "returns nil if value nil" do
|
5
|
+
BSON::ObjectId.to_store(nil).should be_nil
|
6
|
+
end
|
7
|
+
|
8
|
+
it "returns value if already bson object id" do
|
9
|
+
id = BSON::ObjectId.new
|
10
|
+
BSON::ObjectId.to_store(id).should be(id)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns bson object id if string and valid bson object id" do
|
14
|
+
id = BSON::ObjectId.new
|
15
|
+
BSON::ObjectId.to_store(id.to_s).should == id
|
16
|
+
end
|
17
|
+
|
18
|
+
it "returns whatever is passed in if not object id or string version of object id" do
|
19
|
+
BSON::ObjectId.to_store('foo').should == 'foo'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "BSON::ObjectId.from_store" do
|
24
|
+
it "returns nil if value nil" do
|
25
|
+
BSON::ObjectId.from_store(nil).should be_nil
|
26
|
+
end
|
27
|
+
|
28
|
+
it "returns value if already bson object id" do
|
29
|
+
id = BSON::ObjectId.new
|
30
|
+
BSON::ObjectId.from_store(id).should be(id)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "returns bson object id if string and valid bson object id" do
|
34
|
+
id = BSON::ObjectId.new
|
35
|
+
BSON::ObjectId.from_store(id.to_s).should == id
|
36
|
+
end
|
37
|
+
|
38
|
+
it "returns whatever is passed in if not object id or string version of object id" do
|
39
|
+
BSON::ObjectId.from_store('foo').should == 'foo'
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Toy::Identity::ObjectIdKeyFactory do
|
4
|
+
uses_constants('User')
|
5
|
+
|
6
|
+
it "should use BSON::ObjectId as key_type" do
|
7
|
+
Toy::Identity::ObjectIdKeyFactory.new.key_type.should be(BSON::ObjectId)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should use object id for next key" do
|
11
|
+
key = Toy::Identity::ObjectIdKeyFactory.new.next_key(nil)
|
12
|
+
key.should be_instance_of(BSON::ObjectId)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "Declaring key to be object_id" do
|
16
|
+
before(:each) do
|
17
|
+
User.key(Toy::Identity::ObjectIdKeyFactory.new)
|
18
|
+
User.attribute(:name, String)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "returns BSON::ObjectId as .key_type" do
|
22
|
+
User.key_type.should be(BSON::ObjectId)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "sets id attribute to BSON::ObjectId type" do
|
26
|
+
User.attributes['id'].type.should be(BSON::ObjectId)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "correctly stores id in database" do
|
30
|
+
user = User.create(:name => 'John')
|
31
|
+
user.id.should be_instance_of(BSON::ObjectId)
|
32
|
+
key = user.store.client.find_one(user.id)['_id']
|
33
|
+
key.should be_instance_of(BSON::ObjectId)
|
34
|
+
user.id.should == key
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/toystore-mongo.gemspec
CHANGED
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.summary = %q{Mongo integration for Toystore}
|
13
13
|
s.description = %q{Mongo integration for Toystore}
|
14
14
|
|
15
|
-
s.add_dependency('plucky',
|
16
|
-
s.add_dependency('toystore',
|
15
|
+
s.add_dependency('plucky', '~> 0.4.1')
|
16
|
+
s.add_dependency('toystore', '~> 0.8.0')
|
17
17
|
s.add_dependency('adapter-mongo', '~> 0.5.2')
|
18
18
|
|
19
19
|
s.files = `git ls-files`.split("\n") - ['specs.watchr']
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: toystore-mongo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 7
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.7.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- John Nunemaker
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-06-07 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: plucky
|
@@ -25,12 +25,12 @@ dependencies:
|
|
25
25
|
requirements:
|
26
26
|
- - ~>
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
hash:
|
28
|
+
hash: 13
|
29
29
|
segments:
|
30
30
|
- 0
|
31
31
|
- 4
|
32
|
-
-
|
33
|
-
version: 0.4.
|
32
|
+
- 1
|
33
|
+
version: 0.4.1
|
34
34
|
type: :runtime
|
35
35
|
version_requirements: *id001
|
36
36
|
- !ruby/object:Gem::Dependency
|
@@ -41,12 +41,12 @@ dependencies:
|
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
hash:
|
44
|
+
hash: 63
|
45
45
|
segments:
|
46
46
|
- 0
|
47
|
-
-
|
47
|
+
- 8
|
48
48
|
- 0
|
49
|
-
version: 0.
|
49
|
+
version: 0.8.0
|
50
50
|
type: :runtime
|
51
51
|
version_requirements: *id002
|
52
52
|
- !ruby/object:Gem::Dependency
|
@@ -80,6 +80,8 @@ files:
|
|
80
80
|
- LICENSE
|
81
81
|
- README.rdoc
|
82
82
|
- Rakefile
|
83
|
+
- lib/toy/extensions/bson_object_id.rb
|
84
|
+
- lib/toy/identity/object_id_key_factory.rb
|
83
85
|
- lib/toy/mongo.rb
|
84
86
|
- lib/toy/mongo/querying.rb
|
85
87
|
- lib/toy/mongo/version.rb
|
@@ -87,6 +89,8 @@ files:
|
|
87
89
|
- spec/helper.rb
|
88
90
|
- spec/spec.opts
|
89
91
|
- spec/support/constants.rb
|
92
|
+
- spec/toy/extensions/bson_object_id_spec.rb
|
93
|
+
- spec/toy/identity/object_id_key_factory_spec.rb
|
90
94
|
- spec/toy/mongo/querying_spec.rb
|
91
95
|
- spec/toy/mongo_spec.rb
|
92
96
|
- toystore-mongo.gemspec
|
@@ -127,6 +131,8 @@ test_files:
|
|
127
131
|
- spec/helper.rb
|
128
132
|
- spec/spec.opts
|
129
133
|
- spec/support/constants.rb
|
134
|
+
- spec/toy/extensions/bson_object_id_spec.rb
|
135
|
+
- spec/toy/identity/object_id_key_factory_spec.rb
|
130
136
|
- spec/toy/mongo/querying_spec.rb
|
131
137
|
- spec/toy/mongo_spec.rb
|
132
138
|
has_rdoc:
|