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.

Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +42 -5
  3. data/README.md +1 -1
  4. data/lib/moped.rb +10 -13
  5. data/lib/moped/address.rb +56 -0
  6. data/lib/moped/authenticatable.rb +89 -0
  7. data/lib/moped/cluster.rb +169 -136
  8. data/lib/moped/collection.rb +53 -19
  9. data/lib/moped/connection.rb +69 -10
  10. data/lib/moped/connection/manager.rb +49 -0
  11. data/lib/moped/connection/pool.rb +198 -0
  12. data/lib/moped/connection/queue.rb +93 -0
  13. data/lib/moped/connection/reaper.rb +52 -0
  14. data/lib/moped/connection/socket.rb +4 -0
  15. data/lib/moped/connection/socket/connectable.rb +169 -0
  16. data/lib/moped/connection/socket/ssl.rb +52 -0
  17. data/lib/moped/connection/socket/tcp.rb +25 -0
  18. data/lib/moped/connection/sockets.rb +4 -0
  19. data/lib/moped/cursor.rb +3 -5
  20. data/lib/moped/database.rb +18 -24
  21. data/lib/moped/errors.rb +35 -6
  22. data/lib/moped/executable.rb +96 -0
  23. data/lib/moped/failover.rb +41 -0
  24. data/lib/moped/failover/disconnect.rb +31 -0
  25. data/lib/moped/failover/ignore.rb +29 -0
  26. data/lib/moped/failover/reconfigure.rb +34 -0
  27. data/lib/moped/failover/retry.rb +37 -0
  28. data/lib/moped/indexes.rb +4 -1
  29. data/lib/moped/instrumentable.rb +39 -0
  30. data/lib/moped/instrumentable/log.rb +43 -0
  31. data/lib/moped/instrumentable/noop.rb +31 -0
  32. data/lib/moped/loggable.rb +110 -0
  33. data/lib/moped/node.rb +316 -297
  34. data/lib/moped/operation.rb +3 -0
  35. data/lib/moped/operation/read.rb +62 -0
  36. data/lib/moped/operation/write.rb +57 -0
  37. data/lib/moped/protocol/command.rb +65 -4
  38. data/lib/moped/protocol/commands/authenticate.rb +1 -2
  39. data/lib/moped/protocol/delete.rb +16 -0
  40. data/lib/moped/protocol/get_more.rb +102 -31
  41. data/lib/moped/protocol/insert.rb +17 -0
  42. data/lib/moped/protocol/message.rb +44 -46
  43. data/lib/moped/protocol/query.rb +175 -92
  44. data/lib/moped/protocol/reply.rb +19 -8
  45. data/lib/moped/protocol/update.rb +18 -0
  46. data/lib/moped/query.rb +43 -17
  47. data/lib/moped/read_preference.rb +49 -0
  48. data/lib/moped/read_preference/nearest.rb +55 -0
  49. data/lib/moped/read_preference/primary.rb +60 -0
  50. data/lib/moped/read_preference/primary_preferred.rb +55 -0
  51. data/lib/moped/read_preference/secondary.rb +50 -0
  52. data/lib/moped/read_preference/secondary_preferred.rb +53 -0
  53. data/lib/moped/read_preference/selectable.rb +79 -0
  54. data/lib/moped/readable.rb +55 -0
  55. data/lib/moped/session.rb +122 -70
  56. data/lib/moped/{mongo_uri.rb → uri.rb} +75 -31
  57. data/lib/moped/version.rb +1 -1
  58. data/lib/moped/write_concern.rb +33 -0
  59. data/lib/moped/write_concern/propagate.rb +38 -0
  60. data/lib/moped/write_concern/unverified.rb +28 -0
  61. metadata +79 -44
  62. data/lib/moped/bson.rb +0 -45
  63. data/lib/moped/bson/binary.rb +0 -137
  64. data/lib/moped/bson/code.rb +0 -112
  65. data/lib/moped/bson/document.rb +0 -41
  66. data/lib/moped/bson/extensions.rb +0 -91
  67. data/lib/moped/bson/extensions/array.rb +0 -37
  68. data/lib/moped/bson/extensions/boolean.rb +0 -16
  69. data/lib/moped/bson/extensions/false_class.rb +0 -19
  70. data/lib/moped/bson/extensions/float.rb +0 -22
  71. data/lib/moped/bson/extensions/hash.rb +0 -39
  72. data/lib/moped/bson/extensions/integer.rb +0 -36
  73. data/lib/moped/bson/extensions/nil_class.rb +0 -19
  74. data/lib/moped/bson/extensions/object.rb +0 -11
  75. data/lib/moped/bson/extensions/regexp.rb +0 -38
  76. data/lib/moped/bson/extensions/string.rb +0 -45
  77. data/lib/moped/bson/extensions/symbol.rb +0 -33
  78. data/lib/moped/bson/extensions/time.rb +0 -23
  79. data/lib/moped/bson/extensions/true_class.rb +0 -19
  80. data/lib/moped/bson/max_key.rb +0 -51
  81. data/lib/moped/bson/min_key.rb +0 -51
  82. data/lib/moped/bson/object_id.rb +0 -301
  83. data/lib/moped/bson/timestamp.rb +0 -38
  84. data/lib/moped/bson/types.rb +0 -67
  85. data/lib/moped/logging.rb +0 -58
  86. data/lib/moped/session/context.rb +0 -115
  87. data/lib/moped/sockets/connectable.rb +0 -167
  88. data/lib/moped/sockets/ssl.rb +0 -50
  89. data/lib/moped/sockets/tcp.rb +0 -23
  90. data/lib/moped/threaded.rb +0 -69
@@ -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
@@ -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
@@ -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