moped 1.5.3 → 2.0.0.beta
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of moped might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +42 -5
- data/README.md +1 -1
- data/lib/moped.rb +10 -13
- data/lib/moped/address.rb +56 -0
- data/lib/moped/authenticatable.rb +89 -0
- data/lib/moped/cluster.rb +169 -136
- data/lib/moped/collection.rb +53 -19
- data/lib/moped/connection.rb +69 -10
- data/lib/moped/connection/manager.rb +49 -0
- data/lib/moped/connection/pool.rb +198 -0
- data/lib/moped/connection/queue.rb +93 -0
- data/lib/moped/connection/reaper.rb +52 -0
- data/lib/moped/connection/socket.rb +4 -0
- data/lib/moped/connection/socket/connectable.rb +169 -0
- data/lib/moped/connection/socket/ssl.rb +52 -0
- data/lib/moped/connection/socket/tcp.rb +25 -0
- data/lib/moped/connection/sockets.rb +4 -0
- data/lib/moped/cursor.rb +3 -5
- data/lib/moped/database.rb +18 -24
- data/lib/moped/errors.rb +35 -6
- data/lib/moped/executable.rb +96 -0
- data/lib/moped/failover.rb +41 -0
- data/lib/moped/failover/disconnect.rb +31 -0
- data/lib/moped/failover/ignore.rb +29 -0
- data/lib/moped/failover/reconfigure.rb +34 -0
- data/lib/moped/failover/retry.rb +37 -0
- data/lib/moped/indexes.rb +4 -1
- data/lib/moped/instrumentable.rb +39 -0
- data/lib/moped/instrumentable/log.rb +43 -0
- data/lib/moped/instrumentable/noop.rb +31 -0
- data/lib/moped/loggable.rb +110 -0
- data/lib/moped/node.rb +316 -297
- data/lib/moped/operation.rb +3 -0
- data/lib/moped/operation/read.rb +62 -0
- data/lib/moped/operation/write.rb +57 -0
- data/lib/moped/protocol/command.rb +65 -4
- data/lib/moped/protocol/commands/authenticate.rb +1 -2
- data/lib/moped/protocol/delete.rb +16 -0
- data/lib/moped/protocol/get_more.rb +102 -31
- data/lib/moped/protocol/insert.rb +17 -0
- data/lib/moped/protocol/message.rb +44 -46
- data/lib/moped/protocol/query.rb +175 -92
- data/lib/moped/protocol/reply.rb +19 -8
- data/lib/moped/protocol/update.rb +18 -0
- data/lib/moped/query.rb +43 -17
- data/lib/moped/read_preference.rb +49 -0
- data/lib/moped/read_preference/nearest.rb +55 -0
- data/lib/moped/read_preference/primary.rb +60 -0
- data/lib/moped/read_preference/primary_preferred.rb +55 -0
- data/lib/moped/read_preference/secondary.rb +50 -0
- data/lib/moped/read_preference/secondary_preferred.rb +53 -0
- data/lib/moped/read_preference/selectable.rb +79 -0
- data/lib/moped/readable.rb +55 -0
- data/lib/moped/session.rb +122 -70
- data/lib/moped/{mongo_uri.rb → uri.rb} +75 -31
- data/lib/moped/version.rb +1 -1
- data/lib/moped/write_concern.rb +33 -0
- data/lib/moped/write_concern/propagate.rb +38 -0
- data/lib/moped/write_concern/unverified.rb +28 -0
- metadata +79 -44
- data/lib/moped/bson.rb +0 -45
- data/lib/moped/bson/binary.rb +0 -137
- data/lib/moped/bson/code.rb +0 -112
- data/lib/moped/bson/document.rb +0 -41
- data/lib/moped/bson/extensions.rb +0 -91
- data/lib/moped/bson/extensions/array.rb +0 -37
- data/lib/moped/bson/extensions/boolean.rb +0 -16
- data/lib/moped/bson/extensions/false_class.rb +0 -19
- data/lib/moped/bson/extensions/float.rb +0 -22
- data/lib/moped/bson/extensions/hash.rb +0 -39
- data/lib/moped/bson/extensions/integer.rb +0 -36
- data/lib/moped/bson/extensions/nil_class.rb +0 -19
- data/lib/moped/bson/extensions/object.rb +0 -11
- data/lib/moped/bson/extensions/regexp.rb +0 -38
- data/lib/moped/bson/extensions/string.rb +0 -45
- data/lib/moped/bson/extensions/symbol.rb +0 -33
- data/lib/moped/bson/extensions/time.rb +0 -23
- data/lib/moped/bson/extensions/true_class.rb +0 -19
- data/lib/moped/bson/max_key.rb +0 -51
- data/lib/moped/bson/min_key.rb +0 -51
- data/lib/moped/bson/object_id.rb +0 -301
- data/lib/moped/bson/timestamp.rb +0 -38
- data/lib/moped/bson/types.rb +0 -67
- data/lib/moped/logging.rb +0 -58
- data/lib/moped/session/context.rb +0 -115
- data/lib/moped/sockets/connectable.rb +0 -167
- data/lib/moped/sockets/ssl.rb +0 -50
- data/lib/moped/sockets/tcp.rb +0 -23
- data/lib/moped/threaded.rb +0 -69
data/lib/moped/sockets/ssl.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'openssl'
|
2
|
-
|
3
|
-
module Moped
|
4
|
-
module Sockets
|
5
|
-
|
6
|
-
# This is a wrapper around a tcp socket.
|
7
|
-
class SSL < OpenSSL::SSL::SSLSocket
|
8
|
-
include Connectable
|
9
|
-
|
10
|
-
attr_reader :socket
|
11
|
-
|
12
|
-
# Initialize the new TCPSocket with SSL.
|
13
|
-
#
|
14
|
-
# @example Initialize the socket.
|
15
|
-
# SSL.new("127.0.0.1", 27017)
|
16
|
-
#
|
17
|
-
# @param [ String ] host The host.
|
18
|
-
# @param [ Integer ] port The port.
|
19
|
-
#
|
20
|
-
# @since 1.2.0
|
21
|
-
def initialize(host, port)
|
22
|
-
@host, @port = host, port
|
23
|
-
handle_socket_errors do
|
24
|
-
@socket = TCPSocket.new(host, port)
|
25
|
-
super(socket)
|
26
|
-
self.sync_close = true
|
27
|
-
connect
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
# Set the encoding of the underlying socket.
|
32
|
-
#
|
33
|
-
# @param [ String ] string The encoding.
|
34
|
-
#
|
35
|
-
# @since 1.3.0
|
36
|
-
def set_encoding(string)
|
37
|
-
socket.set_encoding(string)
|
38
|
-
end
|
39
|
-
|
40
|
-
# Set a socket option on the underlying socket.
|
41
|
-
#
|
42
|
-
# @param [ Array<Object> ] args The option arguments.
|
43
|
-
#
|
44
|
-
# @since 1.3.0
|
45
|
-
def setsockopt(*args)
|
46
|
-
socket.setsockopt(*args)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
data/lib/moped/sockets/tcp.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module Moped
|
2
|
-
module Sockets
|
3
|
-
|
4
|
-
# This is a wrapper around a tcp socket.
|
5
|
-
class TCP < ::TCPSocket
|
6
|
-
include Connectable
|
7
|
-
|
8
|
-
# Initialize the new TCPSocket.
|
9
|
-
#
|
10
|
-
# @example Initialize the socket.
|
11
|
-
# TCPSocket.new("127.0.0.1", 27017)
|
12
|
-
#
|
13
|
-
# @param [ String ] host The host.
|
14
|
-
# @param [ Integer ] port The port.
|
15
|
-
#
|
16
|
-
# @since 1.2.0
|
17
|
-
def initialize(host, port)
|
18
|
-
@host, @port = host, port
|
19
|
-
handle_socket_errors { super }
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/lib/moped/threaded.rb
DELETED
@@ -1,69 +0,0 @@
|
|
1
|
-
module Moped
|
2
|
-
|
3
|
-
# This module contains logic for easy access to objects that have a lifecycle
|
4
|
-
# on the current thread.
|
5
|
-
#
|
6
|
-
# Extracted from Mongoid's +Threaded+ module.
|
7
|
-
#
|
8
|
-
# @api private
|
9
|
-
module Threaded
|
10
|
-
extend self
|
11
|
-
|
12
|
-
# Begin entry into a named thread local stack.
|
13
|
-
#
|
14
|
-
# @example Begin entry into the stack.
|
15
|
-
# Threaded.begin(:create)
|
16
|
-
#
|
17
|
-
# @param [ String ] name The name of the stack.
|
18
|
-
#
|
19
|
-
# @return [ true ] True.
|
20
|
-
#
|
21
|
-
# @since 1.0.0
|
22
|
-
def begin(name)
|
23
|
-
stack(name).push(true)
|
24
|
-
end
|
25
|
-
|
26
|
-
# Are in the middle of executing the named stack
|
27
|
-
#
|
28
|
-
# @example Are we in the stack execution?
|
29
|
-
# Threaded.executing?(:create)
|
30
|
-
#
|
31
|
-
# @param [ Symbol ] name The name of the stack.
|
32
|
-
#
|
33
|
-
# @return [ true ] If the stack is being executed.
|
34
|
-
#
|
35
|
-
# @since 1.0.0
|
36
|
-
def executing?(name)
|
37
|
-
!stack(name).empty?
|
38
|
-
end
|
39
|
-
|
40
|
-
# Exit from a named thread local stack.
|
41
|
-
#
|
42
|
-
# @example Exit from the stack.
|
43
|
-
# Threaded.end(:create)
|
44
|
-
#
|
45
|
-
# @param [ Symbol ] name The name of the stack
|
46
|
-
#
|
47
|
-
# @return [ true ] True.
|
48
|
-
#
|
49
|
-
# @since 1.0.0
|
50
|
-
def end(name)
|
51
|
-
stack(name).pop
|
52
|
-
end
|
53
|
-
|
54
|
-
# Get the named stack.
|
55
|
-
#
|
56
|
-
# @example Get a stack by name
|
57
|
-
# Threaded.stack(:create)
|
58
|
-
#
|
59
|
-
# @param [ Symbol ] name The name of the stack
|
60
|
-
#
|
61
|
-
# @return [ Array ] The stack.
|
62
|
-
#
|
63
|
-
# @since 1.0.0
|
64
|
-
def stack(name)
|
65
|
-
stacks = (Thread.current[:__moped_threaded_stacks__] ||= {})
|
66
|
-
stacks[name] ||= []
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|