monga 0.0.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.
- data/.gitignore +17 -0
- data/Gemfile +9 -0
- data/LICENSE.txt +22 -0
- data/README.md +110 -0
- data/Rakefile +13 -0
- data/lib/monga/client.rb +8 -0
- data/lib/monga/clients/client.rb +24 -0
- data/lib/monga/clients/master_slave_client.rb +5 -0
- data/lib/monga/clients/replica_set_client.rb +101 -0
- data/lib/monga/collection.rb +108 -0
- data/lib/monga/connection.rb +23 -0
- data/lib/monga/connection_pool.rb +38 -0
- data/lib/monga/connections/em_connection.rb +152 -0
- data/lib/monga/connections/primary.rb +46 -0
- data/lib/monga/connections/secondary.rb +13 -0
- data/lib/monga/cursor.rb +175 -0
- data/lib/monga/database.rb +97 -0
- data/lib/monga/exceptions.rb +9 -0
- data/lib/monga/miner.rb +72 -0
- data/lib/monga/request.rb +122 -0
- data/lib/monga/requests/delete.rb +23 -0
- data/lib/monga/requests/get_more.rb +19 -0
- data/lib/monga/requests/insert.rb +29 -0
- data/lib/monga/requests/kill_cursors.rb +25 -0
- data/lib/monga/requests/query.rb +49 -0
- data/lib/monga/requests/update.rb +25 -0
- data/lib/monga/response.rb +11 -0
- data/lib/monga.rb +30 -0
- data/monga.gemspec +26 -0
- data/spec/helpers/mongodb.rb +59 -0
- data/spec/helpers/truncate.rb +15 -0
- data/spec/monga/collection_spec.rb +448 -0
- data/spec/monga/connection_pool_spec.rb +50 -0
- data/spec/monga/connection_spec.rb +64 -0
- data/spec/monga/cursor_spec.rb +186 -0
- data/spec/monga/database_spec.rb +67 -0
- data/spec/monga/replica_set_client_spec.rb +46 -0
- data/spec/monga/requests/delete_spec.rb +0 -0
- data/spec/monga/requests/insert_spec.rb +0 -0
- data/spec/monga/requests/query_spec.rb +28 -0
- data/spec/spec_helper.rb +29 -0
- metadata +185 -0
@@ -0,0 +1,186 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Monga::Cursor do
|
4
|
+
include Helpers::Truncate
|
5
|
+
|
6
|
+
describe "simple ops" do
|
7
|
+
before do
|
8
|
+
EM.run do
|
9
|
+
req = COLLECTION.safe_insert([
|
10
|
+
{ author: "Madonna", title: "Burning Up" },
|
11
|
+
{ author: "Madonna", title: "Freezing" },
|
12
|
+
{ author: "Madonna", title: "Untitled Track 1" },
|
13
|
+
{ author: "Madonna", title: "Untitled Track 2" },
|
14
|
+
{ author: "Madonna", title: "Untitled Track 3" },
|
15
|
+
{ author: "Madonna", title: "Untitled Track 4" },
|
16
|
+
{ author: "Madonna", title: "Untitled Track 5" },
|
17
|
+
{ author: "Radiohead", title: "Karma Police" },
|
18
|
+
])
|
19
|
+
req.callback{ EM.stop }
|
20
|
+
req.errback{ |err| raise err }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should return one item" do
|
25
|
+
EM.run do
|
26
|
+
cursor = Monga::Cursor.new(DB, COLLECTION.name, { query: { author: "Madonna" }, limit: 1 }, {})
|
27
|
+
docs = []
|
28
|
+
cursor.each_doc do |doc|
|
29
|
+
docs << doc
|
30
|
+
end
|
31
|
+
cursor.callback do
|
32
|
+
docs.first["title"].must_equal "Burning Up"
|
33
|
+
EM.stop
|
34
|
+
end
|
35
|
+
cursor.errback{ |err| raise err }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should return two items" do
|
40
|
+
EM.run do
|
41
|
+
cursor = Monga::Cursor.new(DB, COLLECTION.name, { query: { author: "Madonna" }, limit: 2 }, {})
|
42
|
+
docs = []
|
43
|
+
cursor.each_doc do |doc|
|
44
|
+
docs << doc
|
45
|
+
end
|
46
|
+
cursor.callback do
|
47
|
+
docs.size.must_equal 2
|
48
|
+
docs.first["title"].must_equal "Burning Up"
|
49
|
+
docs.last["title"].must_equal "Freezing"
|
50
|
+
EM.stop
|
51
|
+
end
|
52
|
+
cursor.errback{ |err| raise err }
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should skip two items" do
|
57
|
+
EM.run do
|
58
|
+
cursor = Monga::Cursor.new(DB, COLLECTION.name, { query: { author: "Madonna" }, limit: 2, skip: 2 })
|
59
|
+
docs = []
|
60
|
+
cursor.each_doc do |doc|
|
61
|
+
docs << doc
|
62
|
+
end
|
63
|
+
cursor.callback do
|
64
|
+
docs.size.must_equal 2
|
65
|
+
docs.first["title"].must_equal "Untitled Track 1"
|
66
|
+
docs.last["title"].must_equal "Untitled Track 2"
|
67
|
+
EM.stop
|
68
|
+
end
|
69
|
+
cursor.errback{ |err| raise err }
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should select all" do
|
74
|
+
EM.run do
|
75
|
+
cursor = Monga::Cursor.new(DB, COLLECTION.name, { query: { author: "Madonna" } })
|
76
|
+
docs = []
|
77
|
+
cursor.each_doc do |doc|
|
78
|
+
docs << doc
|
79
|
+
end
|
80
|
+
cursor.callback do
|
81
|
+
docs.size.must_equal 7
|
82
|
+
docs.all?{ |doc| doc["author"] == "Madonna" }.must_equal true
|
83
|
+
EM.stop
|
84
|
+
end
|
85
|
+
cursor.errback{ |err| raise err }
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should select all with batch_size option" do
|
90
|
+
EM.run do
|
91
|
+
cursor = Monga::Cursor.new(DB, COLLECTION.name, { query: { author: "Madonna" }, batch_size: 2 })
|
92
|
+
docs = []
|
93
|
+
cursor.each_doc do |doc|
|
94
|
+
docs << doc
|
95
|
+
end
|
96
|
+
cursor.callback do |res|
|
97
|
+
docs.size.must_equal 7
|
98
|
+
docs.all?{ |doc| doc["author"] == "Madonna" }.must_equal true
|
99
|
+
EM.stop
|
100
|
+
end
|
101
|
+
cursor.errback{ |err| raise err }
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
it "should select LIMIT < max with batch_size option" do
|
106
|
+
EM.run do
|
107
|
+
cursor = Monga::Cursor.new(DB, COLLECTION.name, { query: { author: "Madonna" }, batch_size: 2, limit: 5 })
|
108
|
+
docs = []
|
109
|
+
cursor.each_doc do |doc|
|
110
|
+
docs << doc
|
111
|
+
end
|
112
|
+
cursor.callback do
|
113
|
+
docs.size.must_equal 5
|
114
|
+
docs.all?{ |doc| doc["author"] == "Madonna" }.must_equal true
|
115
|
+
EM.stop
|
116
|
+
end
|
117
|
+
cursor.errback{ |err| raise err }
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should select LIMIT > max with batch_size option" do
|
122
|
+
EM.run do
|
123
|
+
cursor = Monga::Cursor.new(DB, COLLECTION.name, { query: { author: "Madonna" }, batch_size: 2, limit: 15 })
|
124
|
+
docs = []
|
125
|
+
cursor.each_doc do |doc|
|
126
|
+
docs << doc
|
127
|
+
end
|
128
|
+
cursor.callback do
|
129
|
+
docs.size.must_equal 7
|
130
|
+
docs.all?{ |doc| doc["author"] == "Madonna" }.must_equal true
|
131
|
+
EM.stop
|
132
|
+
end
|
133
|
+
cursor.errback{ |err| raise err }
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
it "should kill cursor" do
|
138
|
+
EM.run do
|
139
|
+
cursor = Monga::Cursor.new(DB, COLLECTION.name, { query: { author: "Madonna" }, batch_size: 2, limit: 15 })
|
140
|
+
cursor.next_document.callback do |doc|
|
141
|
+
cursor.next_document.callback do |doc|
|
142
|
+
DB.cmd(cursorInfo: 1).callback do |resp|
|
143
|
+
resp.first["totalOpen"].must_equal 1
|
144
|
+
cursor.kill
|
145
|
+
DB.cmd(cursorInfo: 1).callback do |resp|
|
146
|
+
resp.first["totalOpen"].must_equal 0
|
147
|
+
req = cursor.next_document
|
148
|
+
req.callback do |resp|
|
149
|
+
fail "never called"
|
150
|
+
end
|
151
|
+
req.errback do |err|
|
152
|
+
err.class.must_equal Monga::Exceptions::CursorIsClosed
|
153
|
+
EM.stop
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
it "should kill marked cursors" do
|
163
|
+
EM.run do
|
164
|
+
cursor = Monga::Cursor.new(DB, COLLECTION.name, { query: { author: "Madonna" }, batch_size: 2, limit: 15 })
|
165
|
+
req = cursor.next_document
|
166
|
+
req.errback{ |err| raise err }
|
167
|
+
req.callback do
|
168
|
+
req = DB.cmd(cursorInfo: 1)
|
169
|
+
req.errback{ |err| raise err }
|
170
|
+
req.callback do |resp|
|
171
|
+
cursor.mark_to_kill
|
172
|
+
resp.first["totalOpen"].must_equal 1
|
173
|
+
EM.add_timer(2) do
|
174
|
+
req = DB.cmd(cursorInfo: 1)
|
175
|
+
req.errback{ |err| raise err }
|
176
|
+
req.callback do |resp|
|
177
|
+
resp.first["totalOpen"].must_equal 0
|
178
|
+
EM.stop
|
179
|
+
end
|
180
|
+
end
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Monga::Database do
|
4
|
+
before do
|
5
|
+
EM.run do
|
6
|
+
req = DB.drop_collection("myCollection")
|
7
|
+
req.callback{ EM.stop }
|
8
|
+
req.errback{ EM.stop }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "create/drop" do
|
13
|
+
|
14
|
+
it "should create and then drop collection" do
|
15
|
+
EM.run do
|
16
|
+
req = DB.create_collection("myCollection")
|
17
|
+
req.errback{ |err| raise err }
|
18
|
+
req.callback do
|
19
|
+
req = DB.list_collections
|
20
|
+
req.errback{ |err| raise err }
|
21
|
+
req.callback do |res|
|
22
|
+
res.include?("myCollection").must_equal true
|
23
|
+
req = DB.drop_collection("myCollection")
|
24
|
+
req.errback{ |err| raise err }
|
25
|
+
req.callback do
|
26
|
+
req = DB.list_collections
|
27
|
+
req.errback{ |err| raise err }
|
28
|
+
req.callback do |res|
|
29
|
+
res.include?("myCollection").must_equal false
|
30
|
+
EM.stop
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "create collection with options" do
|
40
|
+
it "should create cappet collection with 5kb size to store only 1 large doc" do
|
41
|
+
EM.run do
|
42
|
+
req = DB.create_collection("myCollection", capped: true, size: 5*1024)
|
43
|
+
req.callback do
|
44
|
+
collection = DB["myCollection"]
|
45
|
+
str = "h"*4*1024
|
46
|
+
req = collection.safe_insert({ data: str })
|
47
|
+
req.errback{ |err| raise err }
|
48
|
+
req.callback do
|
49
|
+
req = collection.safe_insert({ data: str })
|
50
|
+
req.errback{ |err| raise err }
|
51
|
+
req.callback do
|
52
|
+
req = collection.count()
|
53
|
+
req.errback{ |err| raise err }
|
54
|
+
req.callback do |res|
|
55
|
+
res.must_equal 1
|
56
|
+
req = DB.drop_collection("myCollection")
|
57
|
+
req.callback{ EM.stop }
|
58
|
+
req.errback{ |err| raise err }
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
req.errback{ |err| raise err }
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Monga::ReplicaSetClient do
|
4
|
+
include Helpers::Truncate
|
5
|
+
|
6
|
+
it "should establish simple connection" do
|
7
|
+
EM.run do
|
8
|
+
100.times do
|
9
|
+
RS_COLLECTION.insert({row: "test"})
|
10
|
+
end
|
11
|
+
EM.add_timer(0.1) do
|
12
|
+
req = RS_COLLECTION.count
|
13
|
+
req.callback do |n|
|
14
|
+
n.must_equal 100
|
15
|
+
EM.stop
|
16
|
+
end
|
17
|
+
req.errback do |err|
|
18
|
+
raise err
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should find new primary" do
|
25
|
+
EM.run do
|
26
|
+
n = 0
|
27
|
+
EM.add_periodic_timer(0.01) do
|
28
|
+
if n == 101
|
29
|
+
n += 1
|
30
|
+
RS_COLLECTION.count.callback do |cnt|
|
31
|
+
cnt.must_equal 100
|
32
|
+
EM.stop
|
33
|
+
end
|
34
|
+
elsif n <= 100
|
35
|
+
if n == 10
|
36
|
+
primary = REPL_SET.primary
|
37
|
+
primary.stop
|
38
|
+
primary.start
|
39
|
+
end
|
40
|
+
n+= 1
|
41
|
+
RS_COLLECTION.insert({row: n.to_s})
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
File without changes
|
File without changes
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Monga::Requests::Query do
|
4
|
+
include Helpers::Truncate
|
5
|
+
|
6
|
+
before do
|
7
|
+
EM.run do
|
8
|
+
documents = [
|
9
|
+
{ author: "Madonna", title: "Burning Up" },
|
10
|
+
{ author: "Madonna", title: "Freezing" },
|
11
|
+
{ author: "Bjork", title: "Song" },
|
12
|
+
]
|
13
|
+
Monga::Requests::Insert.new(DB, COLLECTION.name, { documents: documents }).perform
|
14
|
+
EM.add_timer(0.05){ EM.next_tick{ EM.stop }}
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should fetch one document" do
|
19
|
+
EM.run do
|
20
|
+
command = { query: { author: "Madonna" }, limit: 2 }
|
21
|
+
req = Monga::Requests::Query.new(DB, COLLECTION.name, command).callback_perform
|
22
|
+
req.callback do |res|
|
23
|
+
EM.stop
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
LIB_PATH = File.expand_path('../../lib/monga', __FILE__)
|
2
|
+
|
3
|
+
require LIB_PATH
|
4
|
+
require 'helpers/truncate'
|
5
|
+
require 'helpers/mongodb'
|
6
|
+
require 'minitest/spec'
|
7
|
+
require 'minitest/autorun'
|
8
|
+
require 'minitest/reporters'
|
9
|
+
MiniTest::Reporters.use! MiniTest::Reporters::SpecReporter.new
|
10
|
+
|
11
|
+
EM.run do
|
12
|
+
CLIENT = Monga::Client.new(host: "localhost", port: 27017)
|
13
|
+
DB = CLIENT["dbTest"]
|
14
|
+
COLLECTION = DB["testCollection"]
|
15
|
+
EM.stop
|
16
|
+
end
|
17
|
+
|
18
|
+
INSTANCE = Mongodb::Instance.new(dbpath: "/tmp/mongodb/instance/")
|
19
|
+
|
20
|
+
REPL_SET_PORTS = [{ port: 29100 }, { port: 29200 }, { port: 29300 }]
|
21
|
+
EM.run do
|
22
|
+
REPL_SET = Mongodb::ReplicaSet.new(REPL_SET_PORTS)
|
23
|
+
RS_CLIENT = Monga::ReplicaSetClient.new(servers: REPL_SET_PORTS)
|
24
|
+
RS_DB = RS_CLIENT["dbTest"]
|
25
|
+
RS_COLLECTION = RS_DB["testCollection"]
|
26
|
+
EM.stop
|
27
|
+
end
|
28
|
+
|
29
|
+
# And welcome to callback Hell
|
metadata
ADDED
@@ -0,0 +1,185 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: monga
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Petr Yanovich
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-04-01 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
none: false
|
21
|
+
type: :development
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
none: false
|
28
|
+
prerelease: false
|
29
|
+
name: bundler
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ! '>='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
none: false
|
37
|
+
type: :development
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ! '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
none: false
|
44
|
+
prerelease: false
|
45
|
+
name: rake
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
requirement: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ! '>='
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0'
|
52
|
+
none: false
|
53
|
+
type: :runtime
|
54
|
+
version_requirements: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ! '>='
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '0'
|
59
|
+
none: false
|
60
|
+
prerelease: false
|
61
|
+
name: eventmachine
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
none: false
|
69
|
+
type: :runtime
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ! '>='
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
none: false
|
76
|
+
prerelease: false
|
77
|
+
name: bson
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
requirement: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ! '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
none: false
|
85
|
+
type: :runtime
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ! '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
none: false
|
92
|
+
prerelease: false
|
93
|
+
name: bson_ext
|
94
|
+
description: MongoDB Ruby Evented Driver on EventMachine
|
95
|
+
email:
|
96
|
+
- fl00r@yandex.ru
|
97
|
+
executables: []
|
98
|
+
extensions: []
|
99
|
+
extra_rdoc_files: []
|
100
|
+
files:
|
101
|
+
- .gitignore
|
102
|
+
- Gemfile
|
103
|
+
- LICENSE.txt
|
104
|
+
- README.md
|
105
|
+
- Rakefile
|
106
|
+
- lib/monga.rb
|
107
|
+
- lib/monga/client.rb
|
108
|
+
- lib/monga/clients/client.rb
|
109
|
+
- lib/monga/clients/master_slave_client.rb
|
110
|
+
- lib/monga/clients/replica_set_client.rb
|
111
|
+
- lib/monga/collection.rb
|
112
|
+
- lib/monga/connection.rb
|
113
|
+
- lib/monga/connection_pool.rb
|
114
|
+
- lib/monga/connections/em_connection.rb
|
115
|
+
- lib/monga/connections/primary.rb
|
116
|
+
- lib/monga/connections/secondary.rb
|
117
|
+
- lib/monga/cursor.rb
|
118
|
+
- lib/monga/database.rb
|
119
|
+
- lib/monga/exceptions.rb
|
120
|
+
- lib/monga/miner.rb
|
121
|
+
- lib/monga/request.rb
|
122
|
+
- lib/monga/requests/delete.rb
|
123
|
+
- lib/monga/requests/get_more.rb
|
124
|
+
- lib/monga/requests/insert.rb
|
125
|
+
- lib/monga/requests/kill_cursors.rb
|
126
|
+
- lib/monga/requests/query.rb
|
127
|
+
- lib/monga/requests/update.rb
|
128
|
+
- lib/monga/response.rb
|
129
|
+
- monga.gemspec
|
130
|
+
- spec/helpers/mongodb.rb
|
131
|
+
- spec/helpers/truncate.rb
|
132
|
+
- spec/monga/collection_spec.rb
|
133
|
+
- spec/monga/connection_pool_spec.rb
|
134
|
+
- spec/monga/connection_spec.rb
|
135
|
+
- spec/monga/cursor_spec.rb
|
136
|
+
- spec/monga/database_spec.rb
|
137
|
+
- spec/monga/replica_set_client_spec.rb
|
138
|
+
- spec/monga/requests/delete_spec.rb
|
139
|
+
- spec/monga/requests/insert_spec.rb
|
140
|
+
- spec/monga/requests/query_spec.rb
|
141
|
+
- spec/spec_helper.rb
|
142
|
+
homepage: ''
|
143
|
+
licenses:
|
144
|
+
- MIT
|
145
|
+
post_install_message:
|
146
|
+
rdoc_options: []
|
147
|
+
require_paths:
|
148
|
+
- lib
|
149
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ! '>='
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
hash: -1690207560468014577
|
154
|
+
version: '0'
|
155
|
+
segments:
|
156
|
+
- 0
|
157
|
+
none: false
|
158
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
|
+
requirements:
|
160
|
+
- - ! '>='
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
hash: -1690207560468014577
|
163
|
+
version: '0'
|
164
|
+
segments:
|
165
|
+
- 0
|
166
|
+
none: false
|
167
|
+
requirements: []
|
168
|
+
rubyforge_project:
|
169
|
+
rubygems_version: 1.8.25
|
170
|
+
signing_key:
|
171
|
+
specification_version: 3
|
172
|
+
summary: MongoDB Ruby Evented Driver on EventMachine
|
173
|
+
test_files:
|
174
|
+
- spec/helpers/mongodb.rb
|
175
|
+
- spec/helpers/truncate.rb
|
176
|
+
- spec/monga/collection_spec.rb
|
177
|
+
- spec/monga/connection_pool_spec.rb
|
178
|
+
- spec/monga/connection_spec.rb
|
179
|
+
- spec/monga/cursor_spec.rb
|
180
|
+
- spec/monga/database_spec.rb
|
181
|
+
- spec/monga/replica_set_client_spec.rb
|
182
|
+
- spec/monga/requests/delete_spec.rb
|
183
|
+
- spec/monga/requests/insert_spec.rb
|
184
|
+
- spec/monga/requests/query_spec.rb
|
185
|
+
- spec/spec_helper.rb
|