mongo 2.2.4 → 2.2.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 65cf62fc9f77f84668c204be16c29ecf86f6217a
4
- data.tar.gz: dfc97cdbd591e0fd9f539dd8bef21fb46af49829
3
+ metadata.gz: 091537e3e22eeeced33e7b6f0f325176421c0815
4
+ data.tar.gz: 1e20931d726c885a783019e6bd3302633f8871e3
5
5
  SHA512:
6
- metadata.gz: 937f66f51858557875fc829be722fff81d104c1d4c1cc4522335bcaca7937d5026cee53cbe6a682bb9c649a523ddf213c4a5de1dd29005530c74a8a392538fbe
7
- data.tar.gz: b38fbd21f331920971e2fd466147d21d0a9fa866079b57c9618c6aca908ebc20123f6bab467116bb18ac76e432703a74e80d256ce90c58a91ea25e0a6e8901b7
6
+ metadata.gz: 15eff6d3df999006130abf1d31e90723004abbb621bfa1d3c8df011fb21809191b9b68aed94c124255cf9977a5d74fe784e2083b17130fa14f61c10e9bbb28f0
7
+ data.tar.gz: 9b59120fcd633bfad9a612f7bb9ad641259348683f0598bfa0a41e73b6d05d65c4363e888debac942141b2eec6ba991a712c7bd23a7e4909c56124c8c0ff7b4d
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -7,9 +7,33 @@ require 'mongo'
7
7
  # include the mongo namespace
8
8
  include Mongo
9
9
 
10
- client = Mongo::Client.new("mongodb://localhost:27017/?ssl=true&sslVerify=false")
10
+ #gem 'mongo', '2.2.4' # this version raises "Cursor not found"
11
+ # gem 'mongo', '2.1.2' # this version works
12
+
13
+ #require 'uri'
14
+ #require 'mongo'
15
+
16
+ #binding.pry
17
+ puts "-" * 50
18
+ puts "Mongo Driver version: #{Mongo::VERSION}"
19
+ puts "-" * 50
20
+
21
+ uri = "mongodb://emily:qWQ6wfYfM5v7FGFf@aws-us-east-1-portal.14.dblayer.com:11118,aws-us-east-1-portal.13.dblayer.com:11141/tests?ssl=true"
22
+ #uri = "mongodb://localhost:2323,localhost:2324"
23
+ c = Mongo::Client.new(uri, ssl: true, ssl_verify: false, max_pool_size: 10)
24
+ #c = Mongo::Client.new(uri)
25
+
26
+ # c = Mongo::Client.new(["server:3000", "server:3001", "server:3002"],
27
+ # :ssl => true,
28
+ # :ssl_cert => "/Users/emily/ssl-certificates/client.pem",
29
+ # :ssl_key => "/Users/emily/ssl-certificates/client.pem",
30
+ # :ssl_ca_cert => "/Users/emily/ssl-certificates/ca.pem",
31
+ # :max_pool_size => 20)
11
32
 
12
33
  binding.pry
13
34
 
14
- client
35
+ c['samplecol'].drop
36
+ c['samplecol'].insert_many(50.times.map { |i| { someval: i } })
37
+
38
+ 10.times.map { Thread.start { c['samplecol'].find({}).batch_size(10).to_a } }.map(&:join)
15
39
 
@@ -56,6 +56,7 @@ module Mongo
56
56
  def close_query
57
57
  @cursor.send(:kill_cursors) if @cursor && !@cursor.closed?
58
58
  end
59
+ alias :kill_cursors :close_query
59
60
 
60
61
  private
61
62
 
@@ -84,7 +84,7 @@ module Mongo
84
84
  # @return [ String ] The raw BSON.
85
85
  #
86
86
  # @since 2.1.0
87
- def to_bson(buffer = BSON::ByteBuffer.new)
87
+ def to_bson(buffer = BSON::ByteBuffer.new, validating_keys = nil)
88
88
  as_json.to_bson(buffer)
89
89
  end
90
90
 
@@ -135,7 +135,7 @@ module Mongo
135
135
  # @return [ String ] The raw BSON data.
136
136
  #
137
137
  # @since 2.0.0
138
- def to_bson(buffer = BSON::ByteBuffer.new)
138
+ def to_bson(buffer = BSON::ByteBuffer.new, validating_keys = nil)
139
139
  document.to_bson(buffer)
140
140
  end
141
141
 
@@ -198,9 +198,9 @@ module Mongo
198
198
  # @return [ String ] The raw BSON data.
199
199
  #
200
200
  # @since 2.0.0
201
- def to_bson(encoded = ''.force_encoding(BSON::BINARY))
201
+ def to_bson(buffer = BSON::ByteBuffer.new, validating_keys = nil)
202
202
  document[:md5] ||= @client_md5.hexdigest
203
- document.to_bson(encoded)
203
+ document.to_bson(buffer)
204
204
  end
205
205
 
206
206
  # Get the upload date.
@@ -56,7 +56,7 @@ module Mongo
56
56
  #
57
57
  # @since 2.0.0
58
58
  def connect!
59
- unless socket
59
+ unless socket && socket.connectable?
60
60
  @socket = address.socket(timeout, ssl_options)
61
61
  socket.connect!
62
62
  authenticate!
@@ -99,6 +99,18 @@ module Mongo
99
99
  end
100
100
  end
101
101
 
102
+ # This socket can only be used if the ssl socket (@socket) has been created.
103
+ #
104
+ # @example Is the socket connectable?
105
+ # socket.connectable?
106
+ #
107
+ # @return [ true, false ] If the socket is connectable.
108
+ #
109
+ # @since 2.2.5
110
+ def connectable?
111
+ !!@socket
112
+ end
113
+
102
114
  private
103
115
 
104
116
  def create_context(options)
@@ -64,6 +64,18 @@ module Mongo
64
64
  @host, @port, @timeout = host, port, timeout
65
65
  super(family)
66
66
  end
67
+
68
+ # This object does not wrap another socket so it's always connectable.
69
+ #
70
+ # @example Is the socket connectable?
71
+ # socket.connectable?
72
+ #
73
+ # @return [ true, false ] If the socket is connectable.
74
+ #
75
+ # @since 2.2.5
76
+ def connectable?
77
+ true
78
+ end
67
79
  end
68
80
  end
69
81
  end
@@ -55,6 +55,18 @@ module Mongo
55
55
  @socket = ::UNIXSocket.new(path)
56
56
  set_socket_options(@socket)
57
57
  end
58
+
59
+ # This socket can only be used if the unix socket (@socket) has been created.
60
+ #
61
+ # @example Is the socket connectable?
62
+ # socket.connectable?
63
+ #
64
+ # @return [ true, false ] If the socket is connectable.
65
+ #
66
+ # @since 2.2.5
67
+ def connectable?
68
+ !!@socket
69
+ end
58
70
  end
59
71
  end
60
72
  end
@@ -17,5 +17,5 @@ module Mongo
17
17
  # The current version of the driver.
18
18
  #
19
19
  # @since 2.0.0
20
- VERSION = '2.2.4'.freeze
20
+ VERSION = '2.2.5'.freeze
21
21
  end
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.files += %w[mongo.gemspec LICENSE README.md CONTRIBUTING.md Rakefile]
26
26
  s.test_files = Dir.glob('spec/**/*')
27
27
 
28
+ s.executables = ['mongo_console']
28
29
  s.require_paths = ['lib']
29
30
  s.has_rdoc = 'yard'
30
31
  s.bindir = 'bin'
@@ -121,6 +121,28 @@ describe Mongo::Collection::View::Aggregation do
121
121
  }.to raise_error(Mongo::Error::OperationFailure)
122
122
  end
123
123
  end
124
+
125
+ context 'when the initial response has no results but an active cursor', if: find_command_enabled? do
126
+
127
+ let(:documents) do
128
+ [
129
+ { city: 'a'*6000000 },
130
+ { city: 'b'*6000000 }
131
+ ]
132
+ end
133
+
134
+ let(:options) do
135
+ { :use_cursor => true }
136
+ end
137
+
138
+ let(:pipeline) do
139
+ [{ '$sample' => { 'size' => 2 } }]
140
+ end
141
+
142
+ it 'iterates over the result documents' do
143
+ expect(aggregation.to_a.size).to eq(2)
144
+ end
145
+ end
124
146
  end
125
147
 
126
148
  describe '#initialize' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.4
4
+ version: 2.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Brock
@@ -32,7 +32,7 @@ cert_chain:
32
32
  EhIn2f8suSc9QAqYt7w4T+PMtjxWTVcXs+Uy2PbDtjhtEBz6ZsP6YSsOpJbrCjCV
33
33
  wZtXjpRUvWz86V5vjhHCTE8fqfEb85aeDwUCckPzpio=
34
34
  -----END CERTIFICATE-----
35
- date: 2016-03-01 00:00:00.000000000 Z
35
+ date: 2016-04-29 00:00:00.000000000 Z
36
36
  dependencies:
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bson
@@ -50,7 +50,8 @@ dependencies:
50
50
  version: '4.0'
51
51
  description: A Ruby driver for MongoDB
52
52
  email: mongodb-dev@googlegroups.com
53
- executables: []
53
+ executables:
54
+ - mongo_console
54
55
  extensions: []
55
56
  extra_rdoc_files: []
56
57
  files:
@@ -577,7 +578,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
577
578
  version: '0'
578
579
  requirements: []
579
580
  rubyforge_project:
580
- rubygems_version: 2.4.6
581
+ rubygems_version: 2.4.5.1
581
582
  signing_key:
582
583
  specification_version: 4
583
584
  summary: Ruby driver for MongoDB
metadata.gz.sig CHANGED
Binary file