monga 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -14,7 +14,7 @@ module Monga::Clients
14
14
 
15
15
  servers = opts.delete :servers
16
16
  @clients = servers.map do |server|
17
- c = case server
17
+ case server
18
18
  when Hash
19
19
  Monga::Clients::SingleInstanceClient.new(opts.merge(server))
20
20
  when String
@@ -22,8 +22,6 @@ module Monga::Clients
22
22
  o = { host: h, port: p.to_i }
23
23
  Monga::Clients::SingleInstanceClient.new(opts.merge(o))
24
24
  end
25
- c.force_status!
26
- c
27
25
  end
28
26
 
29
27
  @proxy_connection = Monga::Connection.proxy_connection_class(opts[:type], self)
@@ -42,7 +42,6 @@ module Monga::Clients
42
42
  yield(@status) if block_given?
43
43
  end
44
44
  else
45
- @status = nil
46
45
  yield(@status) if block_given?
47
46
  end
48
47
  end
@@ -19,8 +19,10 @@ module Monga::Connections
19
19
  end
20
20
 
21
21
  def parse
22
- parse_meta if @position == 0
23
- parse_doc if @position > 0
22
+ begin
23
+ more = parse_meta if @position == 0
24
+ parse_doc if @position > 0
25
+ end while more && @position == 0
24
26
  end
25
27
 
26
28
  def parse_meta
@@ -25,7 +25,7 @@ module Monga::Connections
25
25
  callback do
26
26
  send_data msg
27
27
  end
28
- @responses[request_id] = cb if cb
28
+ @responses[request_id] = cb if cb
29
29
  end
30
30
 
31
31
  def receive_data(data)
@@ -33,7 +33,7 @@ module Monga::Connections
33
33
  @buffer.each do |message|
34
34
  request_id = message[2]
35
35
  cb = @responses.delete request_id
36
- cb.call(message) if cb
36
+ cb.call(message) if cb
37
37
  end
38
38
  end
39
39
 
@@ -68,7 +68,7 @@ module Monga::Connections
68
68
  end
69
69
 
70
70
  def connected?
71
- reconnect unless @reactor_running
71
+ reconnect unless @connected
72
72
  @connected || false
73
73
  end
74
74
 
@@ -14,6 +14,10 @@ module Monga::Connections
14
14
  @requests = {}
15
15
  end
16
16
 
17
+ def type
18
+ :em
19
+ end
20
+
17
21
  # If timeout is defined then collect request and start timeout.
18
22
  # If timeout is not defined or zero then return exception.
19
23
  def send_command(msg, request_id = nil, &cb)
@@ -22,7 +26,7 @@ module Monga::Connections
22
26
  set_timeout unless @pending_timeout
23
27
  find_server! unless @pending_server
24
28
  else
25
- error = Monga::Exceptions::Disconnected.new "Can't find appropriate server (all disconnected)"
29
+ error = Monga::Exceptions::Disconnected.new "Can't find appropriate server (all disconnected) without timeout"
26
30
  cb.call(error) if cb
27
31
  end
28
32
  end
@@ -36,6 +40,7 @@ module Monga::Connections
36
40
 
37
41
  def timeout_happend
38
42
  @timeout_happend = false
43
+ @pending_timeout.cancel if @pending_timeout
39
44
  @pending_timeout = false
40
45
  @pending_server = false
41
46
  @requests.keys.each do |request_id|
@@ -1,5 +1,10 @@
1
1
  module Monga::Connections
2
2
  class FiberedProxyConnection < EMProxyConnection
3
+
4
+ def type
5
+ :sync
6
+ end
7
+
3
8
  def send_command(msg, request_id = nil, &cb)
4
9
  if @timeout && @timeout > 0
5
10
  @fib = Fiber.current
@@ -4,6 +4,10 @@ module Monga::Connections
4
4
  class ProxyConnection
5
5
  # Pause while searching server in seconds
6
6
  WAIT = 0.3
7
+
8
+ def type
9
+ :block
10
+ end
7
11
 
8
12
  def initialize(client)
9
13
  @client = client
data/monga.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "monga"
7
- spec.version = "0.0.5"
7
+ spec.version = "0.0.6"
8
8
  spec.authors = ["Petr Yanovich"]
9
9
  spec.email = ["fl00r@yandex.ru"]
10
10
  spec.description = %q{MongoDB Ruby Evented Driver on EventMachine}
@@ -61,8 +61,7 @@ module Fake
61
61
  end
62
62
 
63
63
  def primary
64
- pr = @si.rs.primary == @si if @si.rs
65
- pr
64
+ @si.rs.primary == @si if @si.rs
66
65
  end
67
66
 
68
67
  def receive_data(data)
@@ -93,12 +92,12 @@ module Fake
93
92
  end
94
93
 
95
94
  def start
96
- @sign = EM.start_server('127.0.0.1', @port, Fake::Node, self) unless @connected
95
+ @sign = EM.start_server('127.0.0.1', @port, Fake::Node, self) unless @connected
97
96
  @connected = true
98
97
  end
99
98
 
100
99
  def stop
101
- @server.close_connection
100
+ @server.close_connection if @server
102
101
  EM.stop_server @sign
103
102
  @connected = false
104
103
  end
@@ -123,6 +122,7 @@ module Fake
123
122
 
124
123
  def vote
125
124
  @primary = @instances.select{|inst| inst.connected? }.sample
125
+ @primary
126
126
  end
127
127
 
128
128
  def primary
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monga
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-26 00:00:00.000000000 Z
12
+ date: 2013-04-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  requirement: !ruby/object:Gem::Requirement
@@ -194,7 +194,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
194
194
  requirements:
195
195
  - - ! '>='
196
196
  - !ruby/object:Gem::Version
197
- hash: 100645476183189099
197
+ hash: -3962526029351115610
198
198
  version: '0'
199
199
  segments:
200
200
  - 0
@@ -203,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
203
203
  requirements:
204
204
  - - ! '>='
205
205
  - !ruby/object:Gem::Version
206
- hash: 100645476183189099
206
+ hash: -3962526029351115610
207
207
  version: '0'
208
208
  segments:
209
209
  - 0