mongoid 7.2.0 → 7.2.4

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.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/README.md +1 -1
  5. data/lib/mongoid/attributes.rb +8 -1
  6. data/lib/mongoid/criteria/queryable/selector.rb +0 -4
  7. data/lib/mongoid/document.rb +3 -2
  8. data/lib/mongoid/errors/mongoid_error.rb +1 -1
  9. data/lib/mongoid/interceptable.rb +3 -1
  10. data/lib/mongoid/matcher.rb +19 -43
  11. data/lib/mongoid/matcher/elem_match.rb +2 -1
  12. data/lib/mongoid/matcher/expression.rb +5 -14
  13. data/lib/mongoid/matcher/field_expression.rb +4 -5
  14. data/lib/mongoid/matcher/field_operator.rb +7 -11
  15. data/lib/mongoid/reloadable.rb +5 -0
  16. data/lib/mongoid/validatable/associated.rb +1 -1
  17. data/lib/mongoid/validatable/presence.rb +3 -3
  18. data/lib/mongoid/validatable/uniqueness.rb +1 -1
  19. data/lib/mongoid/version.rb +1 -1
  20. data/lib/rails/generators/mongoid/config/config_generator.rb +8 -1
  21. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +1 -1
  22. data/spec/integration/app_spec.rb +174 -84
  23. data/spec/integration/callbacks_models.rb +49 -0
  24. data/spec/integration/callbacks_spec.rb +216 -0
  25. data/spec/integration/document_spec.rb +21 -0
  26. data/spec/integration/matcher_operator_data/elem_match.yml +46 -0
  27. data/spec/integration/matcher_operator_data/gt_types.yml +63 -0
  28. data/spec/integration/matcher_operator_data/gte_types.yml +15 -0
  29. data/spec/integration/matcher_operator_data/implicit_traversal.yml +96 -0
  30. data/spec/integration/matcher_operator_data/lt_types.yml +15 -0
  31. data/spec/integration/matcher_operator_data/lte_types.yml +15 -0
  32. data/spec/integration/matcher_operator_data/ne_types.yml +15 -0
  33. data/spec/lite_spec_helper.rb +3 -4
  34. data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +50 -0
  35. data/spec/mongoid/atomic/paths_spec.rb +41 -0
  36. data/spec/mongoid/attributes_spec.rb +241 -0
  37. data/spec/mongoid/contextual/atomic_spec.rb +17 -4
  38. data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +36 -0
  39. data/spec/mongoid/document_fields_spec.rb +26 -0
  40. data/spec/mongoid/document_query_spec.rb +51 -0
  41. data/spec/mongoid/errors/mongoid_error_spec.rb +20 -8
  42. data/spec/mongoid/matcher/extract_attribute_data/numeric_keys.yml +104 -0
  43. data/spec/mongoid/matcher/extract_attribute_data/traversal.yml +68 -88
  44. data/spec/mongoid/matcher/extract_attribute_spec.rb +3 -13
  45. data/spec/mongoid/persistable/settable_spec.rb +30 -0
  46. data/spec/mongoid/persistable_spec.rb +2 -2
  47. data/spec/shared/bin/get-mongodb-download-url +17 -0
  48. data/spec/shared/bin/s3-copy +45 -0
  49. data/spec/shared/bin/s3-upload +69 -0
  50. data/spec/shared/lib/mrss/cluster_config.rb +226 -0
  51. data/spec/shared/lib/mrss/constraints.rb +71 -6
  52. data/spec/shared/lib/mrss/docker_runner.rb +271 -0
  53. data/spec/shared/lib/mrss/lite_constraints.rb +16 -0
  54. data/spec/shared/lib/mrss/server_version_registry.rb +115 -0
  55. data/spec/shared/lib/mrss/spec_organizer.rb +32 -2
  56. data/spec/shared/lib/mrss/utils.rb +15 -0
  57. data/spec/shared/share/Dockerfile.erb +322 -0
  58. data/spec/shared/share/haproxy-1.conf +16 -0
  59. data/spec/shared/share/haproxy-2.conf +17 -0
  60. data/spec/shared/shlib/distro.sh +73 -0
  61. data/spec/shared/shlib/server.sh +317 -0
  62. data/spec/shared/shlib/set_env.sh +131 -0
  63. data/spec/spec_helper.rb +1 -1
  64. data/spec/support/models/customer.rb +11 -0
  65. data/spec/support/models/customer_address.rb +12 -0
  66. data/spec/support/models/dictionary.rb +6 -0
  67. data/spec/support/models/mop.rb +10 -0
  68. data/spec/support/spec_config.rb +8 -0
  69. metadata +554 -508
  70. metadata.gz.sig +3 -2
@@ -0,0 +1,317 @@
1
+ # This file contains functions pertaining to downloading, starting and
2
+ # configuring a MongoDB server.
3
+
4
+ set_fcv() {
5
+ if test -n "$FCV"; then
6
+ mongo --eval 'assert.commandWorked(db.adminCommand( { setFeatureCompatibilityVersion: "'"$FCV"'" } ));' "$MONGODB_URI"
7
+ mongo --quiet --eval 'db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )' |grep "version.*$FCV"
8
+ fi
9
+ }
10
+
11
+ add_uri_option() {
12
+ opt=$1
13
+
14
+ if ! echo $MONGODB_URI |sed -e s,//,, |grep -q /; then
15
+ MONGODB_URI="$MONGODB_URI/"
16
+ fi
17
+
18
+ if ! echo $MONGODB_URI |grep -q '?'; then
19
+ MONGODB_URI="$MONGODB_URI?"
20
+ fi
21
+
22
+ MONGODB_URI="$MONGODB_URI&$opt"
23
+ }
24
+
25
+ prepare_server() {
26
+ arch=$1
27
+
28
+ if test -n "$USE_OPT_MONGODB"; then
29
+ export BINDIR=/opt/mongodb/bin
30
+ export PATH=$BINDIR:$PATH
31
+ return
32
+ fi
33
+
34
+ if test "$MONGODB_VERSION" = latest; then
35
+ # Test on the most recent published 4.3 release.
36
+ # https://jira.mongodb.org/browse/RUBY-1724
37
+ echo 'Using "latest" server is not currently implemented' 1>&2
38
+ exit 1
39
+ else
40
+ download_version="$MONGODB_VERSION"
41
+ fi
42
+
43
+ url=`$(dirname $0)/get-mongodb-download-url $download_version $arch`
44
+
45
+ prepare_server_from_url $url
46
+ }
47
+
48
+ prepare_server_from_url() {
49
+ url=$1
50
+
51
+ mongodb_dir="$MONGO_ORCHESTRATION_HOME"/mdb
52
+ mkdir -p "$mongodb_dir"
53
+ curl --retry 3 $url |tar xz -C "$mongodb_dir" -f -
54
+ BINDIR="$mongodb_dir"/`basename $url |sed -e s/.tgz//`/bin
55
+ export PATH="$BINDIR":$PATH
56
+ }
57
+
58
+ install_mlaunch_virtualenv() {
59
+ python2 -V || true
60
+ if ! python2 -m virtualenv -h >/dev/null; then
61
+ # Current virtualenv fails with
62
+ # https://github.com/pypa/virtualenv/issues/1630
63
+ python2 -m pip install 'virtualenv<20' --user
64
+ fi
65
+ if test "$USE_SYSTEM_PYTHON_PACKAGES" = 1 &&
66
+ python2 -m pip list |grep mtools-legacy
67
+ then
68
+ # Use the existing mtools-legacy
69
+ :
70
+ else
71
+ venvpath="$MONGO_ORCHESTRATION_HOME"/venv
72
+ python2 -m virtualenv -p python2 $venvpath
73
+ . $venvpath/bin/activate
74
+ pip install 'mtools-legacy[mlaunch]'
75
+ fi
76
+ }
77
+
78
+ install_mlaunch_pip() {
79
+ if test -n "$USE_OPT_MONGODB" && which mlaunch >/dev/null 2>&1; then
80
+ # mlaunch is preinstalled in the docker image, do not install it here
81
+ return
82
+ fi
83
+
84
+ python -V || true
85
+ python3 -V || true
86
+ pythonpath="$MONGO_ORCHESTRATION_HOME"/python
87
+ pip install -t "$pythonpath" 'mtools-legacy[mlaunch]'
88
+ export PATH="$pythonpath/bin":$PATH
89
+ export PYTHONPATH="$pythonpath"
90
+ }
91
+
92
+ install_mlaunch_git() {
93
+ repo=$1
94
+ branch=$2
95
+ python -V || true
96
+ python3 -V || true
97
+ which pip || true
98
+ which pip3 || true
99
+
100
+ if false; then
101
+ if ! virtualenv --version; then
102
+ python3 `which pip3` install --user virtualenv
103
+ export PATH=$HOME/.local/bin:$PATH
104
+ virtualenv --version
105
+ fi
106
+
107
+ venvpath="$MONGO_ORCHESTRATION_HOME"/venv
108
+ virtualenv -p python3 $venvpath
109
+ . $venvpath/bin/activate
110
+
111
+ pip3 install psutil pymongo
112
+
113
+ git clone $repo mlaunch
114
+ cd mlaunch
115
+ git checkout origin/$branch
116
+ python3 setup.py install
117
+ cd ..
118
+ else
119
+ pip install --user 'virtualenv==13'
120
+ export PATH=$HOME/.local/bin:$PATH
121
+
122
+ venvpath="$MONGO_ORCHESTRATION_HOME"/venv
123
+ virtualenv $venvpath
124
+ . $venvpath/bin/activate
125
+
126
+ pip install psutil pymongo
127
+
128
+ git clone $repo mlaunch
129
+ (cd mlaunch &&
130
+ git checkout origin/$branch &&
131
+ python setup.py install
132
+ )
133
+ fi
134
+ }
135
+
136
+ calculate_server_args() {
137
+ local mongo_version=`echo $MONGODB_VERSION |tr -d .`
138
+
139
+ if test -z "$mongo_version"; then
140
+ echo "$MONGODB_VERSION must be set and not contain only dots" 1>&2
141
+ exit 3
142
+ fi
143
+
144
+ if test $mongo_version = latest; then
145
+ mongo_version=49
146
+ fi
147
+
148
+ local args="--setParameter enableTestCommands=1"
149
+
150
+ if test $mongo_version -ge 50; then
151
+ args="$args --setParameter acceptApiVersion2=1"
152
+ elif test $mongo_version -ge 47; then
153
+ args="$args --setParameter acceptAPIVersion2=1"
154
+ fi
155
+
156
+ # diagnosticDataCollectionEnabled is a mongod-only parameter on server 3.2,
157
+ # and mlaunch does not support specifying mongod-only parameters:
158
+ # https://github.com/rueckstiess/mtools/issues/696
159
+ # Pass it to 3.4 and newer servers where it is accepted by all daemons.
160
+ if test $mongo_version -ge 34; then
161
+ args="$args --setParameter diagnosticDataCollectionEnabled=false"
162
+ fi
163
+ local uri_options=
164
+ if test "$TOPOLOGY" = replica-set; then
165
+ args="$args --replicaset --name test-rs --nodes 2 --arbiter"
166
+ export HAVE_ARBITER=1
167
+ elif test "$TOPOLOGY" = sharded-cluster; then
168
+ args="$args --replicaset --nodes 2 --sharded 1 --name test-rs"
169
+ if test -z "$SINGLE_MONGOS"; then
170
+ args="$args --mongos 2"
171
+ fi
172
+ elif test "$TOPOLOGY" = standalone; then
173
+ args="$args --single"
174
+ elif test "$TOPOLOGY" = load-balanced; then
175
+ args="$args --replicaset --nodes 2 --sharded 1 --name test-rs --port 27117"
176
+ if test -z "$MRSS_ROOT"; then
177
+ echo "Please set MRSS_ROOT" 1>&2
178
+ exit 2
179
+ fi
180
+ if test -n "$SINGLE_MONGOS"; then
181
+ haproxy_config=$MRSS_ROOT/share/haproxy-1.conf
182
+ else
183
+ args="$args --mongos 2"
184
+ haproxy_config=$MRSS_ROOT/share/haproxy-1.conf
185
+ fi
186
+ uri_options="$uri_options&loadBalanced=true"
187
+ else
188
+ echo "Unknown topology: $TOPOLOGY" 1>&2
189
+ exit 1
190
+ fi
191
+ if test -n "$MMAPV1"; then
192
+ args="$args --storageEngine mmapv1 --smallfiles --noprealloc"
193
+ uri_options="$uri_options&retryReads=false&retryWrites=false"
194
+ fi
195
+ if test "$AUTH" = auth; then
196
+ args="$args --auth --username bob --password pwd123"
197
+ elif test "$AUTH" = x509; then
198
+ args="$args --auth --username bootstrap --password bootstrap"
199
+ elif echo "$AUTH" |grep -q ^aws; then
200
+ args="$args --auth --username bootstrap --password bootstrap"
201
+ args="$args --setParameter authenticationMechanisms=MONGODB-AWS,SCRAM-SHA-1,SCRAM-SHA-256"
202
+ uri_options="$uri_options&authMechanism=MONGODB-AWS&authSource=\$external"
203
+ fi
204
+
205
+ if test -n "$OCSP"; then
206
+ if test -z "$OCSP_ALGORITHM"; then
207
+ echo "OCSP_ALGORITHM must be set if OCSP is set" 1>&2
208
+ exit 1
209
+ fi
210
+ fi
211
+
212
+ local server_cert_path server_ca_path server_client_cert_path
213
+ if test "$SSL" = ssl || test -n "$OCSP_ALGORITHM"; then
214
+ if test -n "$OCSP_ALGORITHM"; then
215
+ if test "$OCSP_MUST_STAPLE" = 1; then
216
+ server_cert_path=spec/support/ocsp/$OCSP_ALGORITHM/server-mustStaple.pem
217
+ else
218
+ server_cert_path=spec/support/ocsp/$OCSP_ALGORITHM/server.pem
219
+ fi
220
+ server_ca_path=spec/support/ocsp/$OCSP_ALGORITHM/ca.crt
221
+ server_client_cert_path=spec/support/ocsp/$OCSP_ALGORITHM/server.pem
222
+ else
223
+ server_cert_path=spec/support/certificates/server-second-level-bundle.pem
224
+ server_ca_path=spec/support/certificates/ca.crt
225
+ server_client_cert_path=spec/support/certificates/client.pem
226
+ fi
227
+
228
+ if test -n "$OCSP_ALGORITHM"; then
229
+ client_cert_path=spec/support/ocsp/$OCSP_ALGORITHM/server.pem
230
+ elif test "$AUTH" = x509; then
231
+ client_cert_path=spec/support/certificates/client-x509.pem
232
+
233
+ uri_options="$uri_options&authMechanism=MONGODB-X509"
234
+ elif echo $RVM_RUBY |grep -q jruby; then
235
+ # JRuby does not grok chained certificate bundles -
236
+ # https://github.com/jruby/jruby-openssl/issues/181
237
+ client_cert_path=spec/support/certificates/client.pem
238
+ else
239
+ client_cert_path=spec/support/certificates/client-second-level-bundle.pem
240
+ fi
241
+
242
+ uri_options="$uri_options&tls=true&"\
243
+ "tlsCAFile=$server_ca_path&"\
244
+ "tlsCertificateKeyFile=$client_cert_path"
245
+
246
+ args="$args --sslMode requireSSL"\
247
+ " --sslPEMKeyFile $server_cert_path"\
248
+ " --sslCAFile $server_ca_path"\
249
+ " --sslClientCertificate $server_client_cert_path"
250
+ fi
251
+
252
+ # Docker forwards ports to the external interface, not to the loopback.
253
+ # Hence we must bind to all interfaces here.
254
+ if test -n "$BIND_ALL"; then
255
+ args="$args --bind_ip_all"
256
+ fi
257
+
258
+ # MongoDB servers pre-4.2 do not enable zlib compression by default
259
+ if test "$COMPRESSOR" = snappy; then
260
+ args="$args --networkMessageCompressors snappy"
261
+ elif test "$COMPRESSOR" = zlib; then
262
+ args="$args --networkMessageCompressors zlib"
263
+ fi
264
+
265
+ if test -n "$OCSP_ALGORITHM" || test -n "$OCSP_VERIFIER"; then
266
+ python3 -m pip install asn1crypto oscrypto flask
267
+ fi
268
+
269
+ local ocsp_args=
270
+ if test -n "$OCSP_ALGORITHM"; then
271
+ if test -z "$server_ca_path"; then
272
+ echo "server_ca_path must have been set" 1>&2
273
+ exit 1
274
+ fi
275
+ ocsp_args="--ca_file $server_ca_path"
276
+ if test "$OCSP_DELEGATE" = 1; then
277
+ ocsp_args="$ocsp_args \
278
+ --ocsp_responder_cert spec/support/ocsp/$OCSP_ALGORITHM/ocsp-responder.crt \
279
+ --ocsp_responder_key spec/support/ocsp/$OCSP_ALGORITHM/ocsp-responder.key \
280
+ "
281
+ else
282
+ ocsp_args="$ocsp_args \
283
+ --ocsp_responder_cert spec/support/ocsp/$OCSP_ALGORITHM/ca.crt \
284
+ --ocsp_responder_key spec/support/ocsp/$OCSP_ALGORITHM/ca.key \
285
+ "
286
+ fi
287
+ if test -n "$OCSP_STATUS"; then
288
+ ocsp_args="$ocsp_args --fault $OCSP_STATUS"
289
+ fi
290
+ fi
291
+
292
+ OCSP_ARGS="$ocsp_args"
293
+ SERVER_ARGS="$args"
294
+ URI_OPTIONS="$uri_options"
295
+ }
296
+
297
+ launch_ocsp_mock() {
298
+ if test -n "$OCSP_ARGS"; then
299
+ # Bind to 0.0.0.0 for Docker
300
+ python3 spec/support/ocsp/ocsp_mock.py $OCSP_ARGS -b 0.0.0.0 -p 8100 &
301
+ OCSP_MOCK_PID=$!
302
+ fi
303
+ }
304
+
305
+ launch_server() {
306
+ local dbdir="$1"
307
+ python -m mtools.mlaunch.mlaunch --dir "$dbdir" --binarypath "$BINDIR" $SERVER_ARGS
308
+
309
+ if test "$TOPOLOGY" = load-balanced; then
310
+ if test -z "$haproxy_config"; then
311
+ echo haproxy_config should have been set 1>&2
312
+ exit 3
313
+ fi
314
+
315
+ haproxy -D -f $haproxy_config -p $mongodb_dir/haproxy.pid
316
+ fi
317
+ }
@@ -0,0 +1,131 @@
1
+ TOOLCHAIN_VERSION=289d4bec7c61e88000cea582c05fd8073b932122
2
+
3
+ set_env_java() {
4
+ ls -l /opt || true
5
+ ls -l /usr/lib/jvm || true
6
+
7
+ # Use toolchain java if it exists
8
+ if [ -f /opt/java/jdk8/bin/java ]; then
9
+ export JAVACMD=/opt/java/jdk8/bin/java
10
+ #export PATH=$PATH:/opt/java/jdk8/bin
11
+ fi
12
+
13
+ # ppc64le has it in a different place
14
+ if test -z "$JAVACMD" && [ -f /usr/lib/jvm/java-1.8.0/bin/java ]; then
15
+ export JAVACMD=/usr/lib/jvm/java-1.8.0/bin/java
16
+ #export PATH=$PATH:/usr/lib/jvm/java-1.8.0/bin
17
+ fi
18
+
19
+ if true; then
20
+ # newer
21
+ # rhel71-ppc, https://jira.mongodb.org/browse/BUILD-9231
22
+ if test -z "$JAVACMD" &&
23
+ (ls /opt/java || true) |grep -q java-1.8.0-openjdk-1.8.0 &&
24
+ test -f /opt/java/java-1.8.0-openjdk-1.8.0*/bin/java;
25
+ then
26
+ path=$(cd /opt/java && ls -d java-1.8.0-openjdk-1.8.0* |head -n 1)
27
+ export JAVACMD=/opt/java/"$path"/bin/java
28
+ fi
29
+ else
30
+ # older
31
+ # rhel71-ppc seems to have an /opt/java/jdk8/bin/java but it doesn't work
32
+ if test -n "$JAVACMD" && ! exec $JAVACMD -version; then
33
+ JAVACMD=
34
+ # we will try the /usr/lib/jvm then
35
+ fi
36
+ fi
37
+
38
+ if test -n "$JAVACMD"; then
39
+ eval $JAVACMD -version
40
+ elif which java 2>/dev/null; then
41
+ java -version
42
+ else
43
+ echo No java runtime found
44
+ fi
45
+ }
46
+
47
+ set_env_ruby() {
48
+ if test -z "$RVM_RUBY"; then
49
+ echo "Empty RVM_RUBY, aborting"
50
+ exit 2
51
+ fi
52
+
53
+ #ls -l /opt
54
+
55
+ # Necessary for jruby
56
+ set_env_java
57
+
58
+ if [ "$RVM_RUBY" == "ruby-head" ]; then
59
+ # When we use ruby-head, we do not install the Ruby toolchain.
60
+ # But we still need Python 3.6+ to run mlaunch.
61
+ # Since the ruby-head tests are run on ubuntu1604, we can use the
62
+ # globally installed Python toolchain.
63
+ #export PATH=/opt/python/3.7/bin:$PATH
64
+
65
+ # 12.04, 14.04 and 16.04 are good
66
+ curl --retry 3 -fL http://rubies.travis-ci.org/ubuntu/`lsb_release -rs`/x86_64/ruby-head.tar.bz2 |tar xfj -
67
+ # TODO adjust gem path?
68
+ export PATH=`pwd`/ruby-head/bin:`pwd`/ruby-head/lib/ruby/gems/2.6.0/bin:$PATH
69
+ ruby --version
70
+ ruby --version |grep dev
71
+ elif test "$SYSTEM_RUBY" = 1; then
72
+ # Nothing
73
+ :
74
+ else
75
+ if test "$USE_OPT_TOOLCHAIN" = 1; then
76
+ # Nothing, also PATH is already set
77
+ :
78
+ elif true; then
79
+
80
+ # For testing toolchains:
81
+ #toolchain_url=https://s3.amazonaws.com//mciuploads/mongo-ruby-toolchain/`host_distro`/f11598d091441ffc8d746aacfdc6c26741a3e629/mongo_ruby_driver_toolchain_`host_distro |tr - _`_patch_f11598d091441ffc8d746aacfdc6c26741a3e629_5e46f2793e8e866f36eda2c5_20_02_14_19_18_18.tar.gz
82
+ toolchain_url=http://boxes.10gen.com/build/toolchain-drivers/mongo-ruby-driver/ruby-toolchain-`host_distro`-$TOOLCHAIN_VERSION.tar.xz
83
+ curl --retry 3 -fL $toolchain_url |tar Jxf -
84
+ export PATH=`pwd`/rubies/$RVM_RUBY/bin:$PATH
85
+ #export PATH=`pwd`/rubies/python/3/bin:$PATH
86
+
87
+ # Attempt to get bundler to report all errors - so far unsuccessful
88
+ #curl --retry 3 -o bundler-openssl.diff https://github.com/bundler/bundler/compare/v2.0.1...p-mongo:report-errors.diff
89
+ #find . -path \*/lib/bundler/fetcher.rb -exec patch {} bundler-openssl.diff \;
90
+
91
+ else
92
+
93
+ # Normal operation
94
+ if ! test -d $HOME/.rubies/$RVM_RUBY/bin; then
95
+ echo "Ruby directory does not exist: $HOME/.rubies/$RVM_RUBY/bin" 1>&2
96
+ echo "Contents of /opt:" 1>&2
97
+ ls -l /opt 1>&2 || true
98
+ echo ".rubies symlink:" 1>&2
99
+ ls -ld $HOME/.rubies 1>&2 || true
100
+ echo "Our rubies:" 1>&2
101
+ ls -l $HOME/.rubies 1>&2 || true
102
+ exit 2
103
+ fi
104
+ export PATH=$HOME/.rubies/$RVM_RUBY/bin:$PATH
105
+
106
+ fi
107
+
108
+ ruby --version
109
+
110
+ # Ensure we're using the right ruby
111
+ ruby_name=`echo $RVM_RUBY |awk -F- '{print $1}'`
112
+ ruby_version=`echo $RVM_RUBY |awk -F- '{print $2}' |cut -c 1-3`
113
+
114
+ ruby -v |fgrep $ruby_name
115
+ ruby -v |fgrep $ruby_version
116
+
117
+ # We shouldn't need to update rubygems, and there is value in
118
+ # testing on whatever rubygems came with each supported ruby version
119
+ #echo 'updating rubygems'
120
+ #gem update --system
121
+
122
+ # Only install bundler when not using ruby-head.
123
+ # ruby-head comes with bundler and gem complains
124
+ # because installing bundler would overwrite the bundler binary.
125
+ # We now install bundler in the toolchain, hence nothing needs to be done
126
+ # in the tests.
127
+ if false && echo "$RVM_RUBY" |grep -q jruby; then
128
+ gem install bundler -v '<2'
129
+ fi
130
+ fi
131
+ }
data/spec/spec_helper.rb CHANGED
@@ -43,7 +43,7 @@ if SpecConfig.instance.ci?
43
43
  client = Mongo::Client.new(SpecConfig.instance.addresses)
44
44
  while starting
45
45
  begin
46
- client.command(Mongo::Server::Monitor::Connection::ISMASTER)
46
+ client.command(ping: 1)
47
47
  break
48
48
  rescue Mongo::Error::OperationFailure => e
49
49
  sleep(2)