mongo 2.2.4 → 2.2.5

Sign up to get free protection for your applications and to get access to all the features.
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