mongo_db 0.1.3 → 0.1.4
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/lib/mongo_db/driver/{collection.rb → core/collection.rb} +20 -16
- data/lib/mongo_db/driver/{database.rb → core/database.rb} +1 -1
- data/lib/mongo_db/driver/{hash_helper.rb → core/hash_helper.rb} +0 -0
- data/lib/mongo_db/driver/core.rb +33 -0
- data/lib/mongo_db/driver/more/collection.rb +43 -0
- data/lib/mongo_db/driver/more.rb +13 -0
- data/lib/mongo_db/driver.rb +2 -23
- data/lib/mongo_db/{driver/support.rb → support.rb} +2 -0
- data/readme.md +43 -19
- data/spec/driver/{collection_spec.rb → core/collection_spec.rb} +11 -11
- data/spec/driver/{crud_spec.rb → core/crud_spec.rb} +12 -12
- data/spec/driver/{database_spec.rb → core/database_spec.rb} +0 -0
- data/spec/driver/more/advanced_finders.rb +26 -0
- data/spec/driver/more/simple_finders_spec.rb +51 -0
- data/spec/driver/spec_helper.rb +1 -1
- data/spec/driver_example_spec.rb +45 -0
- data/spec/model/model/crud.rb +1 -1
- data/spec/model/object/crud_shared.rb +13 -13
- metadata +17 -13
- data/spec/driver/example_spec.rb +0 -29
- data/spec/driver/query_spec.rb +0 -27
@@ -1,16 +1,16 @@
|
|
1
|
-
Mongo::Collection
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
module Mongo::Ext::Collection
|
2
|
+
#
|
3
|
+
# CRUD
|
4
|
+
#
|
5
|
+
def save_with_ext doc, opts = {}
|
6
|
+
save_without_ext doc, reverse_merge_defaults(opts, :safe)
|
5
7
|
end
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
-
insert_whth_ext doc_or_docs, reverse_merge_defaults(opts, :safe)
|
9
|
+
def insert_with_ext doc_or_docs, opts = {}
|
10
|
+
insert_without_ext doc_or_docs, reverse_merge_defaults(opts, :safe)
|
10
11
|
end
|
11
12
|
|
12
|
-
|
13
|
-
def update selector, document, opts = {}
|
13
|
+
def update_with_ext selector, document, opts = {}
|
14
14
|
# because :multi works only with $ operators, we need to check it
|
15
15
|
opts = if document.keys.any?{|k| k =~ /^\$/}
|
16
16
|
reverse_merge_defaults(opts, :safe, :multi)
|
@@ -18,14 +18,20 @@ Mongo::Collection.class_eval do
|
|
18
18
|
reverse_merge_defaults(opts, :safe)
|
19
19
|
end
|
20
20
|
|
21
|
-
|
21
|
+
update_without_ext selector, document, opts
|
22
22
|
end
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
|
24
|
+
def remove_with_ext selector = {}, opts = {}
|
25
|
+
remove_without_ext selector, reverse_merge_defaults(opts, :safe, :multi)
|
26
|
+
end
|
27
|
+
|
28
|
+
def destroy *args
|
29
|
+
remove *args
|
27
30
|
end
|
28
31
|
|
32
|
+
#
|
33
|
+
# Querying
|
34
|
+
#
|
29
35
|
def first *args
|
30
36
|
o = find_one *args
|
31
37
|
::Mongo::Ext::HashHelper.unmarshal o
|
@@ -55,8 +61,6 @@ Mongo::Collection.class_eval do
|
|
55
61
|
end
|
56
62
|
end
|
57
63
|
|
58
|
-
alias_method :destroy, :remove
|
59
|
-
|
60
64
|
protected
|
61
65
|
def reverse_merge_defaults opts, *keys
|
62
66
|
h = opts.clone
|
File without changes
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'mongo_db/gems'
|
2
|
+
|
3
|
+
require 'mongo'
|
4
|
+
|
5
|
+
# namespace for extensions
|
6
|
+
class Mongo::Ext; end
|
7
|
+
|
8
|
+
%w(
|
9
|
+
database
|
10
|
+
collection
|
11
|
+
hash_helper
|
12
|
+
).each{|f| require "mongo_db/driver/core/#{f}"}
|
13
|
+
|
14
|
+
# defaults
|
15
|
+
Mongo.class_eval do
|
16
|
+
class << self
|
17
|
+
def defaults; @defaults ||= {} end
|
18
|
+
attr_writer :defaults
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# database
|
23
|
+
Mongo::DB.send :include, Mongo::Ext::DB
|
24
|
+
|
25
|
+
# collection
|
26
|
+
Mongo::Collection.class_eval do
|
27
|
+
include Mongo::Ext::Collection
|
28
|
+
|
29
|
+
%w(insert update remove save).each do |method|
|
30
|
+
alias_method "#{method}_without_ext", method
|
31
|
+
alias_method method, "#{method}_with_ext"
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Mongo::Ext::Collection
|
2
|
+
#
|
3
|
+
# first_by_id, special case
|
4
|
+
#
|
5
|
+
def first_by_id id
|
6
|
+
first _id: id
|
7
|
+
end
|
8
|
+
alias_method :by_id, :first_by_id
|
9
|
+
|
10
|
+
def first_by_id! id
|
11
|
+
first_by_id(id) || raise(Mongo::NotFound, "document with id #{id} not found!")
|
12
|
+
end
|
13
|
+
alias_method :by_id!, :first_by_id!
|
14
|
+
|
15
|
+
protected
|
16
|
+
#
|
17
|
+
# first_by_field, all_by_field
|
18
|
+
#
|
19
|
+
def method_missing clause, *a, &b
|
20
|
+
if clause =~ /^([a-z]_by_[a-z_])|(by_[a-z_])/
|
21
|
+
clause = clause.to_s
|
22
|
+
|
23
|
+
bang = clause =~ /!$/
|
24
|
+
clause = clause[0..-2] if bang
|
25
|
+
|
26
|
+
finder, field = if clause =~ /^by_/
|
27
|
+
['first', clause.sub(/by_/, '')]
|
28
|
+
else
|
29
|
+
clause.split(/_by_/, 2)
|
30
|
+
end
|
31
|
+
finder = 'first' if finder == 'find'
|
32
|
+
|
33
|
+
raise "You can't use bang version with :#{finder}!" if bang and finder != 'first'
|
34
|
+
|
35
|
+
raise "invalid arguments for finder (#{a})!" unless a.size == 1
|
36
|
+
field_value = a.first
|
37
|
+
|
38
|
+
send(finder, field => field_value) || (bang && raise(Mongo::NotFound, "document with #{field}: #{field_value} not found!"))
|
39
|
+
else
|
40
|
+
super
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/mongo_db/driver.rb
CHANGED
@@ -1,23 +1,2 @@
|
|
1
|
-
require 'mongo_db/
|
2
|
-
|
3
|
-
require 'mongo'
|
4
|
-
|
5
|
-
# namespace for extensions
|
6
|
-
class Mongo::Ext; end
|
7
|
-
|
8
|
-
# mongo extensions
|
9
|
-
Mongo.class_eval do
|
10
|
-
def self.defaults; @defaults ||= {} end
|
11
|
-
defaults.merge! \
|
12
|
-
symbolize: true,
|
13
|
-
batch_size: 50,
|
14
|
-
multi: true,
|
15
|
-
safe: true
|
16
|
-
end
|
17
|
-
|
18
|
-
%w(
|
19
|
-
support
|
20
|
-
database
|
21
|
-
collection
|
22
|
-
hash_helper
|
23
|
-
).each{|f| require "mongo_db/driver/#{f}"}
|
1
|
+
require 'mongo_db/driver/core'
|
2
|
+
require 'mongo_db/driver/more'
|
data/readme.md
CHANGED
@@ -1,37 +1,54 @@
|
|
1
|
-
Object Model & Ruby driver enhancements for MongoDB
|
1
|
+
Object Model & Ruby driver enhancements for MongoDB.
|
2
2
|
|
3
3
|
# MongoDB driver enhancements
|
4
4
|
|
5
|
-
|
5
|
+
MongoDB itself is very powerful, flexible and simple tool, but it's Ruby driver hides it behind complicated API.
|
6
|
+
This enhancements alter the Ruby-driver's API to be more simple and intuitive.
|
7
|
+
|
8
|
+
- Makes API of mongo-ruby-driver friendly & handy.
|
6
9
|
- No extra abstraction or complexities introduced, all things are exactly the same as in MongoDB.
|
7
|
-
- Simple migrations support.
|
10
|
+
- Simple migrations support (work in progress).
|
8
11
|
|
9
|
-
|
12
|
+
Note: By default it also adds a little magic and alters some default values of standard driver to be more useful, but You can omit it and require only the core stuff: use *requre 'mongo_db/driver/core'* instead of *requre 'mongo_db/driver'*
|
10
13
|
|
11
14
|
``` ruby
|
12
15
|
require 'mongo_db/driver'
|
13
16
|
|
14
|
-
#
|
15
|
-
|
17
|
+
# connection & db
|
18
|
+
connection = Mongo::Connection.new
|
19
|
+
db = connection.db 'default_test'
|
16
20
|
|
17
|
-
#
|
18
|
-
zeratul =
|
19
|
-
|
21
|
+
# create
|
22
|
+
zeratul = {name: 'Zeratul', stats: {attack: 85, life: 300, shield: 100}}
|
23
|
+
tassadar = {name: 'Tassadar', stats: {attack: 0, life: 80, shield: 300}}
|
20
24
|
|
21
|
-
|
22
|
-
db.
|
25
|
+
db.units.save zeratul
|
26
|
+
db.units.save tassadar
|
23
27
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
28
|
+
# udate (we made error - mistakenly set Tassadar's attack as zero, let's fix it)
|
29
|
+
tassadar[:stats][:attack] = 20
|
30
|
+
db.units.save tassadar
|
28
31
|
|
29
|
-
# each
|
30
|
-
db.
|
31
|
-
|
32
|
+
# querying - first & all, there's also :each, the same as :all
|
33
|
+
db.units.first name: 'Zeratul' # => zeratul
|
34
|
+
db.units.all name: 'Zeratul' # => [zeratul]
|
35
|
+
db.units.all name: 'Zeratul' do |hero|
|
36
|
+
hero # => zeratul
|
32
37
|
end
|
33
38
|
```
|
34
39
|
|
40
|
+
Optionall stuff:
|
41
|
+
|
42
|
+
``` ruby
|
43
|
+
# simple finders (bang versions also availiable)
|
44
|
+
db.units.by_name 'Zeratul' # => zeratul
|
45
|
+
db.units.first_by_name 'Zeratul' # => zeratul
|
46
|
+
db.units.all_by_name 'Zeratul' # => [zeratul]
|
47
|
+
```
|
48
|
+
|
49
|
+
More docs - there's no need for more docs, the whole point of this extension is to be small, intuitive, 100% compatible with official driver (at least should be), and require no extra knowledge.
|
50
|
+
So, please use standard Ruby driver documentation.
|
51
|
+
|
35
52
|
# Object Model (work in progress)
|
36
53
|
|
37
54
|
Model designed after the excellent "Domain-Driven Design" book by Eric Evans.
|
@@ -45,14 +62,21 @@ Model designed after the excellent "Domain-Driven Design" book by Eric Evans.
|
|
45
62
|
|
46
63
|
# Installation & Usage
|
47
64
|
|
65
|
+
Installation:
|
66
|
+
|
48
67
|
``` bash
|
49
68
|
gem install mongo_db
|
50
69
|
```
|
51
70
|
|
71
|
+
Usage:
|
72
|
+
|
52
73
|
``` ruby
|
53
74
|
require 'mongo_db/driver'
|
54
75
|
```
|
55
76
|
|
56
77
|
# License
|
57
78
|
|
58
|
-
Copyright (c) Alexey Petrushin, http://petrush.in, released under the MIT license.
|
79
|
+
Copyright (c) Alexey Petrushin, http://petrush.in, released under the MIT license.
|
80
|
+
|
81
|
+
[mongo_mapper_ext]: https://github.com/alexeypetrushin/mongo_mapper_ext
|
82
|
+
[mongoid_misc]: https://github.com/alexeypetrushin/mongoid_misc
|
@@ -19,8 +19,8 @@ describe "Collection" do
|
|
19
19
|
describe "symbolize" do
|
20
20
|
it 'should always return symbolized hashes' do
|
21
21
|
zeratul = {name: 'Zeratul'}
|
22
|
-
db.
|
23
|
-
r = db.
|
22
|
+
db.units.save(zeratul).should be_mongo_id
|
23
|
+
r = db.units.first(name: 'Zeratul')
|
24
24
|
r[:_id].should be_mongo_id
|
25
25
|
r['_id'].should be_nil
|
26
26
|
r[:name].should == 'Zeratul'
|
@@ -33,8 +33,8 @@ describe "Collection" do
|
|
33
33
|
Mongo.defaults[:symbolize] = false
|
34
34
|
|
35
35
|
zeratul = {name: 'Zeratul'}
|
36
|
-
db.
|
37
|
-
r = db.
|
36
|
+
db.units.save(zeratul).should be_mongo_id
|
37
|
+
r = db.units.first(name: 'Zeratul')
|
38
38
|
r[:_id].should be_nil
|
39
39
|
r['_id'].should be_mongo_id
|
40
40
|
r[:name].should be_nil
|
@@ -46,24 +46,24 @@ describe "Collection" do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
it "first" do
|
49
|
-
db.
|
49
|
+
db.units.first.should be_nil
|
50
50
|
zeratul = {name: 'Zeratul'}
|
51
|
-
db.
|
52
|
-
db.
|
51
|
+
db.units.save(zeratul).should be_mongo_id
|
52
|
+
db.units.first(name: 'Zeratul')[:name].should == 'Zeratul'
|
53
53
|
end
|
54
54
|
|
55
55
|
it 'all' do
|
56
|
-
db.
|
56
|
+
db.units.all.should == []
|
57
57
|
|
58
58
|
zeratul = {name: 'Zeratul'}
|
59
|
-
db.
|
59
|
+
db.units.save(zeratul).should be_mongo_id
|
60
60
|
|
61
|
-
list = db.
|
61
|
+
list = db.units.all(name: 'Zeratul')
|
62
62
|
list.size.should == 1
|
63
63
|
list.first[:name].should == 'Zeratul'
|
64
64
|
|
65
65
|
# with block
|
66
|
-
list = []; db.
|
66
|
+
list = []; db.units.all{|o| list << o}
|
67
67
|
list.size.should == 1
|
68
68
|
list.first[:name].should == 'Zeratul'
|
69
69
|
end
|
@@ -10,28 +10,28 @@ describe "Hash CRUD" do
|
|
10
10
|
|
11
11
|
it 'crud' do
|
12
12
|
# read
|
13
|
-
db.
|
14
|
-
db.
|
15
|
-
db.
|
13
|
+
db.units.count.should == 0
|
14
|
+
db.units.all.should == []
|
15
|
+
db.units.first.should == nil
|
16
16
|
|
17
17
|
# create
|
18
|
-
db.
|
18
|
+
db.units.save(@zeratul).should be_mongo_id
|
19
19
|
@zeratul[:_id].should be_mongo_id
|
20
20
|
|
21
21
|
# read
|
22
|
-
db.
|
23
|
-
db.
|
24
|
-
db.
|
22
|
+
db.units.all.should == [@zeratul]
|
23
|
+
db.units.count.should == 1
|
24
|
+
db.units.first.should == @zeratul
|
25
25
|
|
26
26
|
# update
|
27
27
|
@zeratul[:info] = 'Killer of Cerebrates'
|
28
|
-
db.
|
29
|
-
db.
|
30
|
-
db.
|
28
|
+
db.units.save @zeratul
|
29
|
+
db.units.count.should == 1
|
30
|
+
db.units.first(name: 'Zeratul')[:info].should == 'Killer of Cerebrates'
|
31
31
|
|
32
32
|
# destroy
|
33
|
-
db.
|
34
|
-
db.
|
33
|
+
db.units.destroy @zeratul
|
34
|
+
db.units.count.should == 0
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
before do
|
2
|
+
@zeratul = {name: 'Zeratul', stats: {attack: 85, life: 300, shield: 100}}
|
3
|
+
@tassadar = {name: 'Tassadar', stats: {attack: 20, life: 80, shield: 300}}
|
4
|
+
|
5
|
+
db.units.save @zeratul
|
6
|
+
db.units.save @tassadar
|
7
|
+
end
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
it "selector" do
|
19
|
+
db.units.select{|u|
|
20
|
+
u.stats.life < 100
|
21
|
+
u.name.exist
|
22
|
+
u.name.in
|
23
|
+
}.first.should == @tassadar
|
24
|
+
|
25
|
+
db.units.select{|u| }
|
26
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'driver/spec_helper'
|
2
|
+
|
3
|
+
describe "Querying" do
|
4
|
+
with_mongo
|
5
|
+
|
6
|
+
before do
|
7
|
+
@jim = {name: 'Jim'}
|
8
|
+
@units = db.units
|
9
|
+
end
|
10
|
+
|
11
|
+
it "find, first, by" do
|
12
|
+
@units.first_by_name('Jim').should be_nil
|
13
|
+
-> {@units.first_by_name!('Jim')}.should raise_error(Mongo::NotFound)
|
14
|
+
@units.by_name('Jim').should be_nil
|
15
|
+
-> {@units.by_name!('Jim')}.should raise_error(Mongo::NotFound)
|
16
|
+
@units.first_by_name('Jim').should be_nil
|
17
|
+
-> {@units.first_by_name!('Jim')}.should raise_error(Mongo::NotFound)
|
18
|
+
|
19
|
+
@units.save @jim
|
20
|
+
|
21
|
+
@units.first_by_name('Jim').should == @jim
|
22
|
+
@units.first_by_name!('Jim').should == @jim
|
23
|
+
@units.by_name('Jim').should == @jim
|
24
|
+
@units.by_name!('Jim').should == @jim
|
25
|
+
@units.first_by_name('Jim').should == @jim
|
26
|
+
@units.first_by_name!('Jim').should == @jim
|
27
|
+
end
|
28
|
+
|
29
|
+
it "all" do
|
30
|
+
@units.all_by_name('Jim').should == []
|
31
|
+
@units.save @jim
|
32
|
+
@units.all_by_name('Jim').should == [@jim]
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should allow to use bang version only with :first" do
|
36
|
+
-> {@units.all_by_name!('Jim')}.should raise_error(/can't use bang/)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "by_id (special case)" do
|
40
|
+
@units.method(:by_id).should == @units.method(:first_by_id)
|
41
|
+
@units.method(:by_id!).should == @units.method(:first_by_id!)
|
42
|
+
|
43
|
+
@units.by_id('4de81858cf26bde569000009').should be_nil
|
44
|
+
-> {@units.by_id!('4de81858cf26bde569000009')}.should raise_error(Mongo::NotFound)
|
45
|
+
|
46
|
+
@units.save @jim
|
47
|
+
|
48
|
+
@units.by_id(@jim[:_id]).should == @jim
|
49
|
+
@units.by_id!(@jim[:_id]).should == @jim
|
50
|
+
end
|
51
|
+
end
|
data/spec/driver/spec_helper.rb
CHANGED
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'driver/spec_helper'
|
2
|
+
|
3
|
+
describe "Example" do
|
4
|
+
with_mongo
|
5
|
+
|
6
|
+
defaults = nil
|
7
|
+
before(:all){defaults = Mongo.defaults.clone}
|
8
|
+
after(:all){Mongo.defaults = defaults}
|
9
|
+
|
10
|
+
it "core" do
|
11
|
+
require 'mongo_db/driver'
|
12
|
+
|
13
|
+
# connection & db
|
14
|
+
connection = Mongo::Connection.new
|
15
|
+
db = connection.db 'default_test'
|
16
|
+
|
17
|
+
# collection shortcuts
|
18
|
+
db.some_collection
|
19
|
+
|
20
|
+
# create
|
21
|
+
zeratul = {name: 'Zeratul', stats: {attack: 85, life: 300, shield: 100}}
|
22
|
+
tassadar = {name: 'Tassadar', stats: {attack: 0, life: 80, shield: 300}}
|
23
|
+
|
24
|
+
db.units.save zeratul
|
25
|
+
db.units.save tassadar
|
26
|
+
|
27
|
+
# udate (we made error - mistakenly set Tassadar's attack as zero, let's fix it)
|
28
|
+
tassadar[:stats][:attack] = 20
|
29
|
+
db.units.save tassadar
|
30
|
+
|
31
|
+
# querying first & all, there's also :each, the same as :all
|
32
|
+
db.units.first name: 'Zeratul' # => zeratul
|
33
|
+
db.units.all name: 'Zeratul' # => [zeratul]
|
34
|
+
db.units.all name: 'Zeratul' do |hero|
|
35
|
+
hero # => zeratul
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
it "optional" do
|
40
|
+
# simple finders (bang versions also availiable)
|
41
|
+
db.units.by_name 'Zeratul' # => zeratul
|
42
|
+
db.units.first_by_name 'Zeratul' # => zeratul
|
43
|
+
db.units.all_by_name 'Zeratul' # => [zeratul]
|
44
|
+
end
|
45
|
+
end
|
data/spec/model/model/crud.rb
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
shared_examples_for 'object CRUD' do
|
2
2
|
it 'crud' do
|
3
3
|
# read
|
4
|
-
db.
|
5
|
-
db.
|
6
|
-
db.
|
4
|
+
db.units.count.should == 0
|
5
|
+
db.units.all.should == []
|
6
|
+
db.units.first.should == nil
|
7
7
|
|
8
8
|
# create
|
9
|
-
db.
|
9
|
+
db.units.save(@zeratul).should be_true
|
10
10
|
@zeratul.instance_variable_get(:@_id).should be_present
|
11
11
|
|
12
12
|
# read
|
13
|
-
db.
|
14
|
-
db.
|
15
|
-
db.
|
16
|
-
db.
|
13
|
+
db.units.count.should == 1
|
14
|
+
db.units.all.should == [@zeratul]
|
15
|
+
db.units.first.should == @zeratul
|
16
|
+
db.units.first.object_id.should_not == @zeratul.object_id
|
17
17
|
|
18
18
|
# update
|
19
19
|
@zeratul.info = 'Killer of Cerebrates'
|
20
|
-
db.
|
21
|
-
db.
|
22
|
-
db.
|
20
|
+
db.units.save(@zeratul).should be_true
|
21
|
+
db.units.count.should == 1
|
22
|
+
db.units.first(name: 'Zeratul').info.should == 'Killer of Cerebrates'
|
23
23
|
|
24
24
|
# destroy
|
25
|
-
db.
|
26
|
-
db.
|
25
|
+
db.units.destroy(@zeratul).should be_true
|
26
|
+
db.units.count.should == 0
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongo_db
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-08-
|
12
|
+
date: 2011-08-13 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mongo
|
16
|
-
requirement: &
|
16
|
+
requirement: &2844700 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '1.3'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2844700
|
25
25
|
description:
|
26
26
|
email:
|
27
27
|
executables: []
|
@@ -30,20 +30,24 @@ extra_rdoc_files: []
|
|
30
30
|
files:
|
31
31
|
- Rakefile
|
32
32
|
- readme.md
|
33
|
-
- lib/mongo_db/driver/collection.rb
|
34
|
-
- lib/mongo_db/driver/database.rb
|
35
|
-
- lib/mongo_db/driver/hash_helper.rb
|
33
|
+
- lib/mongo_db/driver/core/collection.rb
|
34
|
+
- lib/mongo_db/driver/core/database.rb
|
35
|
+
- lib/mongo_db/driver/core/hash_helper.rb
|
36
|
+
- lib/mongo_db/driver/core.rb
|
37
|
+
- lib/mongo_db/driver/more/collection.rb
|
38
|
+
- lib/mongo_db/driver/more.rb
|
36
39
|
- lib/mongo_db/driver/spec.rb
|
37
|
-
- lib/mongo_db/driver/support.rb
|
38
40
|
- lib/mongo_db/driver.rb
|
39
41
|
- lib/mongo_db/gems.rb
|
40
42
|
- lib/mongo_db/model.rb
|
41
|
-
-
|
42
|
-
- spec/driver/
|
43
|
-
- spec/driver/
|
44
|
-
- spec/driver/
|
45
|
-
- spec/driver/
|
43
|
+
- lib/mongo_db/support.rb
|
44
|
+
- spec/driver/core/collection_spec.rb
|
45
|
+
- spec/driver/core/crud_spec.rb
|
46
|
+
- spec/driver/core/database_spec.rb
|
47
|
+
- spec/driver/more/advanced_finders.rb
|
48
|
+
- spec/driver/more/simple_finders_spec.rb
|
46
49
|
- spec/driver/spec_helper.rb
|
50
|
+
- spec/driver_example_spec.rb
|
47
51
|
- spec/migration/migration_spec.rb
|
48
52
|
- spec/model/model/crud.rb
|
49
53
|
- spec/model/model/query.rb
|
data/spec/driver/example_spec.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'driver/spec_helper'
|
2
|
-
|
3
|
-
describe "Example" do
|
4
|
-
with_mongo
|
5
|
-
|
6
|
-
it "database & collection" do
|
7
|
-
require 'mongo_db/driver'
|
8
|
-
|
9
|
-
# collection shortcuts
|
10
|
-
db.some_collection
|
11
|
-
|
12
|
-
# save & update
|
13
|
-
zeratul = {name: 'Zeratul'}
|
14
|
-
db.heroes.save zeratul
|
15
|
-
|
16
|
-
# first & all
|
17
|
-
db.heroes.first name: 'Zeratul' # => {name: 'Zeratul'}
|
18
|
-
|
19
|
-
db.heroes.all name: 'Zeratul' # => [{name: 'Zeratul'}]
|
20
|
-
db.heroes.all name: 'Zeratul' do |hero|
|
21
|
-
hero # => {name: 'Zeratul'}
|
22
|
-
end
|
23
|
-
|
24
|
-
# each
|
25
|
-
db.heroes.each name: 'Zeratul' do |hero|
|
26
|
-
hero # => {name: 'Zeratul'}
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
data/spec/driver/query_spec.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
# require 'driver/spec_helper'
|
2
|
-
#
|
3
|
-
# describe "Querying" do
|
4
|
-
# with_mongo
|
5
|
-
#
|
6
|
-
# it "database & collection" do
|
7
|
-
# # collection shortcuts
|
8
|
-
# db.some_collection
|
9
|
-
#
|
10
|
-
# # save & update
|
11
|
-
# zeratul = {name: 'Zeratul'}
|
12
|
-
# db.heroes.save zeratul
|
13
|
-
#
|
14
|
-
# # first & all
|
15
|
-
# db.heroes.first name: 'Zeratul' # => {name: 'Zeratul'}
|
16
|
-
#
|
17
|
-
# db.heroes.all name: 'Zeratul' # => [{name: 'Zeratul'}]
|
18
|
-
# db.heroes.all name: 'Zeratul' do |hero|
|
19
|
-
# hero # => {name: 'Zeratul'}
|
20
|
-
# end
|
21
|
-
#
|
22
|
-
# # each
|
23
|
-
# db.heroes.each name: 'Zeratul' do |hero|
|
24
|
-
# hero # => {name: 'Zeratul'}
|
25
|
-
# end
|
26
|
-
# end
|
27
|
-
# end
|