mongoo 0.2.3 → 0.2.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/VERSION +1 -1
- data/lib/mongoo.rb +21 -1
- data/lib/mongoo/async.rb +43 -8
- data/lib/mongoo/persistence.rb +4 -24
- data/mongoo.gemspec +1 -1
- data/test/helper.rb +2 -2
- data/test/test_async.rb +3 -2
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.4
|
data/lib/mongoo.rb
CHANGED
@@ -3,7 +3,27 @@ module Mongoo
|
|
3
3
|
ATTRIBUTE_META = {}
|
4
4
|
|
5
5
|
class << self
|
6
|
-
attr_accessor :
|
6
|
+
attr_accessor :conn_opts, :db_name, :verbose_debug
|
7
|
+
|
8
|
+
def conn
|
9
|
+
Thread.current[:mongoo] ||= {}
|
10
|
+
Thread.current[:mongoo][:conn] ||= Mongo::Connection.new(*conn_opts)
|
11
|
+
end
|
12
|
+
|
13
|
+
def db
|
14
|
+
Thread.current[:mongoo] ||= {}
|
15
|
+
Thread.current[:mongoo][:db] ||= conn.db(db_name)
|
16
|
+
end
|
17
|
+
|
18
|
+
def reset_connection!
|
19
|
+
if Thread.current[:mongoo]
|
20
|
+
Thread.current[:mongoo][:db] = nil
|
21
|
+
if Thread.current[:mongoo][:conn]
|
22
|
+
Thread.current[:mongoo][:conn].close
|
23
|
+
Thread.current[:mongoo][:conn] = nil
|
24
|
+
end
|
25
|
+
end; true
|
26
|
+
end
|
7
27
|
|
8
28
|
def mode
|
9
29
|
:sync
|
data/lib/mongoo/async.rb
CHANGED
@@ -12,20 +12,55 @@ module Mongoo
|
|
12
12
|
end
|
13
13
|
|
14
14
|
module Mongoo
|
15
|
-
|
16
|
-
|
15
|
+
class FakeMutex
|
16
|
+
def initialize
|
17
|
+
end
|
18
|
+
|
19
|
+
def synchronize
|
20
|
+
yield
|
21
|
+
end
|
22
|
+
|
23
|
+
def lock
|
24
|
+
true
|
25
|
+
end
|
26
|
+
|
27
|
+
def locked?
|
28
|
+
false
|
29
|
+
end
|
30
|
+
|
31
|
+
def sleep(timeout=nil)
|
32
|
+
true
|
33
|
+
end
|
34
|
+
|
35
|
+
def try_lock
|
36
|
+
true
|
37
|
+
end
|
38
|
+
|
39
|
+
def unlock
|
40
|
+
true
|
41
|
+
end
|
17
42
|
end
|
18
43
|
end
|
19
44
|
|
20
|
-
|
21
|
-
|
22
|
-
|
45
|
+
Mongoo.suppress_warnings do
|
46
|
+
module Mongo
|
47
|
+
class Connection
|
48
|
+
Mutex = Mongoo::FakeMutex
|
49
|
+
TCPSocket = TCPSocket = ::EventMachine::Synchrony::TCPSocket
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
module Mongo
|
54
|
+
class Pool
|
55
|
+
Mutex = Mongoo::FakeMutex
|
56
|
+
TCPSocket = TCPSocket = ::EventMachine::Synchrony::TCPSocket
|
57
|
+
end
|
23
58
|
end
|
24
59
|
end
|
25
60
|
|
26
|
-
module
|
27
|
-
|
28
|
-
|
61
|
+
module Mongoo
|
62
|
+
def self.mode
|
63
|
+
:async
|
29
64
|
end
|
30
65
|
end
|
31
66
|
|
data/lib/mongoo/persistence.rb
CHANGED
@@ -20,45 +20,25 @@ module Mongoo
|
|
20
20
|
def collection_name(val=nil)
|
21
21
|
if val
|
22
22
|
@collection_name = val
|
23
|
-
@collection = nil
|
24
|
-
@collection_name
|
25
23
|
else
|
26
24
|
@collection_name ||= self.model_name.tableize
|
27
25
|
end
|
28
26
|
end
|
29
27
|
|
30
28
|
def collection
|
31
|
-
|
29
|
+
db.collection(collection_name)
|
32
30
|
end
|
33
31
|
|
34
32
|
def conn
|
35
|
-
|
36
|
-
Mongoo.conn || raise(Mongoo::ConnNotSet)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def conn=(conn)
|
41
|
-
@conn = conn
|
42
|
-
@db = nil
|
43
|
-
@collection = nil
|
44
|
-
@conn
|
33
|
+
Mongoo.conn
|
45
34
|
end
|
46
35
|
|
47
36
|
def db
|
48
|
-
|
37
|
+
Mongoo.db
|
49
38
|
end
|
50
39
|
|
51
40
|
def db_name
|
52
|
-
|
53
|
-
Mongoo.db_name || raise(Mongoo::DbNameNotSet)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def db_name=(db_name)
|
58
|
-
@db_name = db_name
|
59
|
-
@db = nil
|
60
|
-
@collection = nil
|
61
|
-
@db_name
|
41
|
+
Mongoo.db_name
|
62
42
|
end
|
63
43
|
|
64
44
|
def find(query={}, opts={})
|
data/mongoo.gemspec
CHANGED
data/test/helper.rb
CHANGED
@@ -21,8 +21,8 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
21
21
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
22
22
|
require 'mongoo'
|
23
23
|
|
24
|
-
Mongoo.
|
25
|
-
Mongoo.db_name
|
24
|
+
Mongoo.conn_opts = ["localhost", 27017, :pool_size => 5, :timeout => 5]
|
25
|
+
Mongoo.db_name = "mongoo-test"
|
26
26
|
|
27
27
|
class SearchIndex < Mongoo::Base
|
28
28
|
attribute "terms", :type => :array
|
data/test/test_async.rb
CHANGED
@@ -3,12 +3,13 @@ if ENV["MONGOO_ASYNC"]
|
|
3
3
|
require 'helper'
|
4
4
|
require "mongoo/async"
|
5
5
|
|
6
|
+
Mongoo.conn_opts = ["localhost", 27017, :pool_size => 5, :timeout => 5]
|
7
|
+
Mongoo.db_name = "mongoo-test"
|
8
|
+
|
6
9
|
class TestAsync < Test::Unit::TestCase
|
7
10
|
|
8
11
|
def setup
|
9
12
|
EM.synchrony do
|
10
|
-
Mongoo.conn = Mongo::Connection.new("localhost", 27017, :pool_size => 5, :timeout => 5)
|
11
|
-
Mongoo.db_name = "mongoo-test"
|
12
13
|
|
13
14
|
[Person, TvShow, SearchIndex].each do |obj|
|
14
15
|
obj.drop
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: mongoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.2.
|
5
|
+
version: 0.2.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Ben Myles
|
@@ -163,7 +163,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
163
163
|
requirements:
|
164
164
|
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
hash: -
|
166
|
+
hash: -1209992361420793263
|
167
167
|
segments:
|
168
168
|
- 0
|
169
169
|
version: "0"
|