mongo 2.22.0 → 2.24.0

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 (467) hide show
  1. checksums.yaml +4 -4
  2. data/bin/mongo_console +0 -1
  3. data/lib/mongo/active_support.rb +1 -2
  4. data/lib/mongo/address/ipv4.rb +3 -6
  5. data/lib/mongo/address/ipv6.rb +6 -10
  6. data/lib/mongo/address/unix.rb +1 -4
  7. data/lib/mongo/address/validator.rb +16 -28
  8. data/lib/mongo/address.rb +30 -40
  9. data/lib/mongo/auth/aws/conversation.rb +6 -10
  10. data/lib/mongo/auth/aws/credentials.rb +0 -1
  11. data/lib/mongo/auth/aws/credentials_cache.rb +0 -1
  12. data/lib/mongo/auth/aws/credentials_retriever.rb +45 -59
  13. data/lib/mongo/auth/aws/request.rb +20 -35
  14. data/lib/mongo/auth/aws.rb +1 -2
  15. data/lib/mongo/auth/base.rb +20 -29
  16. data/lib/mongo/auth/conversation_base.rb +14 -18
  17. data/lib/mongo/auth/cr/conversation.rb +0 -3
  18. data/lib/mongo/auth/cr.rb +1 -4
  19. data/lib/mongo/auth/credential_cache.rb +0 -2
  20. data/lib/mongo/auth/gssapi/conversation.rb +3 -8
  21. data/lib/mongo/auth/gssapi.rb +1 -4
  22. data/lib/mongo/auth/ldap/conversation.rb +0 -3
  23. data/lib/mongo/auth/ldap.rb +1 -4
  24. data/lib/mongo/auth/roles.rb +16 -19
  25. data/lib/mongo/auth/sasl_conversation_base.rb +7 -11
  26. data/lib/mongo/auth/scram/conversation.rb +2 -5
  27. data/lib/mongo/auth/scram.rb +5 -10
  28. data/lib/mongo/auth/scram256/conversation.rb +2 -5
  29. data/lib/mongo/auth/scram256.rb +1 -3
  30. data/lib/mongo/auth/scram_conversation_base.rb +18 -24
  31. data/lib/mongo/auth/stringprep/profiles/sasl.rb +17 -18
  32. data/lib/mongo/auth/stringprep/tables.rb +2209 -2210
  33. data/lib/mongo/auth/stringprep/unicode_normalize/normalize.rb +36 -38
  34. data/lib/mongo/auth/stringprep/unicode_normalize/tables.rb +1142 -1150
  35. data/lib/mongo/auth/stringprep.rb +9 -12
  36. data/lib/mongo/auth/user/view.rb +3 -5
  37. data/lib/mongo/auth/user.rb +14 -24
  38. data/lib/mongo/auth/x509/conversation.rb +0 -3
  39. data/lib/mongo/auth/x509.rb +7 -9
  40. data/lib/mongo/auth.rb +18 -30
  41. data/lib/mongo/background_thread.rb +9 -17
  42. data/lib/mongo/bson.rb +0 -2
  43. data/lib/mongo/bulk_write/combineable.rb +0 -3
  44. data/lib/mongo/bulk_write/ordered_combiner.rb +1 -3
  45. data/lib/mongo/bulk_write/result.rb +11 -16
  46. data/lib/mongo/bulk_write/result_combiner.rb +9 -12
  47. data/lib/mongo/bulk_write/transformable.rb +16 -19
  48. data/lib/mongo/bulk_write/unordered_combiner.rb +1 -3
  49. data/lib/mongo/bulk_write/validatable.rb +11 -18
  50. data/lib/mongo/bulk_write.rb +76 -91
  51. data/lib/mongo/caching_cursor.rb +2 -7
  52. data/lib/mongo/client.rb +267 -276
  53. data/lib/mongo/client_encryption.rb +4 -5
  54. data/lib/mongo/cluster/periodic_executor.rb +2 -5
  55. data/lib/mongo/cluster/reapers/cursor_reaper.rb +21 -29
  56. data/lib/mongo/cluster/reapers/socket_reaper.rb +1 -6
  57. data/lib/mongo/cluster/sdam_flow.rb +136 -159
  58. data/lib/mongo/cluster/topology/base.rb +15 -18
  59. data/lib/mongo/cluster/topology/load_balanced.rb +24 -14
  60. data/lib/mongo/cluster/topology/no_replica_set_options.rb +3 -6
  61. data/lib/mongo/cluster/topology/replica_set_no_primary.rb +20 -23
  62. data/lib/mongo/cluster/topology/replica_set_with_primary.rb +0 -2
  63. data/lib/mongo/cluster/topology/sharded.rb +19 -9
  64. data/lib/mongo/cluster/topology/single.rb +24 -14
  65. data/lib/mongo/cluster/topology/unknown.rb +20 -10
  66. data/lib/mongo/cluster/topology.rb +29 -25
  67. data/lib/mongo/cluster.rb +152 -184
  68. data/lib/mongo/cluster_time.rb +14 -31
  69. data/lib/mongo/collection/helpers.rb +5 -8
  70. data/lib/mongo/collection/view/aggregation/behavior.rb +1 -1
  71. data/lib/mongo/collection/view/aggregation.rb +10 -12
  72. data/lib/mongo/collection/view/builder/aggregation.rb +6 -9
  73. data/lib/mongo/collection/view/builder/map_reduce.rb +18 -17
  74. data/lib/mongo/collection/view/builder.rb +0 -1
  75. data/lib/mongo/collection/view/change_stream/retryable.rb +3 -8
  76. data/lib/mongo/collection/view/change_stream.rb +59 -58
  77. data/lib/mongo/collection/view/explainable.rb +11 -20
  78. data/lib/mongo/collection/view/immutable.rb +1 -3
  79. data/lib/mongo/collection/view/iterable.rb +44 -35
  80. data/lib/mongo/collection/view/map_reduce.rb +20 -25
  81. data/lib/mongo/collection/view/readable.rb +96 -94
  82. data/lib/mongo/collection/view/writable.rb +104 -114
  83. data/lib/mongo/collection/view.rb +11 -8
  84. data/lib/mongo/collection.rb +103 -106
  85. data/lib/mongo/condition_variable.rb +4 -4
  86. data/lib/mongo/config/options.rb +0 -3
  87. data/lib/mongo/config/validators/option.rb +3 -5
  88. data/lib/mongo/config.rb +6 -4
  89. data/lib/mongo/crypt/auto_decryption_context.rb +9 -3
  90. data/lib/mongo/crypt/auto_encrypter.rb +34 -43
  91. data/lib/mongo/crypt/auto_encryption_context.rb +0 -3
  92. data/lib/mongo/crypt/binary.rb +5 -9
  93. data/lib/mongo/crypt/binding.rb +150 -156
  94. data/lib/mongo/crypt/context.rb +20 -17
  95. data/lib/mongo/crypt/data_key_context.rb +2 -7
  96. data/lib/mongo/crypt/encryption_io.rb +29 -39
  97. data/lib/mongo/crypt/explicit_decryption_context.rb +9 -3
  98. data/lib/mongo/crypt/explicit_encrypter.rb +1 -1
  99. data/lib/mongo/crypt/explicit_encryption_context.rb +19 -30
  100. data/lib/mongo/crypt/explicit_encryption_expression_context.rb +0 -2
  101. data/lib/mongo/crypt/handle.rb +42 -48
  102. data/lib/mongo/crypt/hooks.rb +12 -15
  103. data/lib/mongo/crypt/kms/aws/credentials.rb +12 -16
  104. data/lib/mongo/crypt/kms/aws/master_document.rb +6 -9
  105. data/lib/mongo/crypt/kms/aws.rb +0 -2
  106. data/lib/mongo/crypt/kms/azure/credentials_retriever.rb +2 -7
  107. data/lib/mongo/crypt/kms/azure/master_document.rb +15 -19
  108. data/lib/mongo/crypt/kms/azure.rb +0 -1
  109. data/lib/mongo/crypt/kms/credentials.rb +13 -27
  110. data/lib/mongo/crypt/kms/gcp/credentials.rb +12 -14
  111. data/lib/mongo/crypt/kms/gcp/credentials_retriever.rb +7 -9
  112. data/lib/mongo/crypt/kms/gcp/master_document.rb +12 -16
  113. data/lib/mongo/crypt/kms/gcp.rb +0 -2
  114. data/lib/mongo/crypt/kms/kmip/credentials.rb +7 -8
  115. data/lib/mongo/crypt/kms/kmip/master_document.rb +3 -5
  116. data/lib/mongo/crypt/kms/kmip.rb +0 -1
  117. data/lib/mongo/crypt/kms/local/credentials.rb +7 -8
  118. data/lib/mongo/crypt/kms/local/master_document.rb +2 -6
  119. data/lib/mongo/crypt/kms/local.rb +0 -1
  120. data/lib/mongo/crypt/kms/master_key_document.rb +11 -15
  121. data/lib/mongo/crypt/kms.rb +14 -16
  122. data/lib/mongo/crypt/kms_context.rb +0 -2
  123. data/lib/mongo/crypt/rewrap_many_data_key_context.rb +2 -7
  124. data/lib/mongo/crypt/rewrap_many_data_key_result.rb +2 -4
  125. data/lib/mongo/crypt/status.rb +12 -14
  126. data/lib/mongo/crypt.rb +0 -1
  127. data/lib/mongo/csot_timeout_holder.rb +3 -2
  128. data/lib/mongo/cursor/kill_spec.rb +7 -10
  129. data/lib/mongo/cursor.rb +74 -64
  130. data/lib/mongo/cursor_host.rb +8 -10
  131. data/lib/mongo/database/view.rb +23 -39
  132. data/lib/mongo/database.rb +68 -65
  133. data/lib/mongo/dbref.rb +0 -1
  134. data/lib/mongo/deprecations.rb +98 -0
  135. data/lib/mongo/distinguishing_semaphore.rb +0 -1
  136. data/lib/mongo/error/auth_error.rb +0 -2
  137. data/lib/mongo/error/bad_load_balancer_target.rb +0 -2
  138. data/lib/mongo/error/bulk_write_error.rb +7 -10
  139. data/lib/mongo/error/change_stream_resumable.rb +0 -2
  140. data/lib/mongo/error/client_closed.rb +0 -2
  141. data/lib/mongo/error/closed_stream.rb +1 -4
  142. data/lib/mongo/error/connection_check_out_timeout.rb +3 -6
  143. data/lib/mongo/error/connection_perished.rb +0 -2
  144. data/lib/mongo/error/connection_unavailable.rb +0 -2
  145. data/lib/mongo/error/credential_check_error.rb +0 -2
  146. data/lib/mongo/error/crypt_error.rb +0 -2
  147. data/lib/mongo/error/extra_file_chunk.rb +1 -4
  148. data/lib/mongo/error/failed_string_prep_validation.rb +5 -6
  149. data/lib/mongo/error/file_not_found.rb +0 -3
  150. data/lib/mongo/error/handshake_error.rb +0 -2
  151. data/lib/mongo/error/insufficient_iteration_count.rb +1 -4
  152. data/lib/mongo/error/internal_driver_error.rb +0 -2
  153. data/lib/mongo/error/invalid_address.rb +0 -2
  154. data/lib/mongo/error/invalid_application_name.rb +0 -3
  155. data/lib/mongo/error/invalid_bulk_operation.rb +1 -4
  156. data/lib/mongo/error/invalid_bulk_operation_type.rb +1 -4
  157. data/lib/mongo/error/invalid_collection_name.rb +1 -4
  158. data/lib/mongo/error/invalid_config_option.rb +0 -3
  159. data/lib/mongo/error/invalid_cursor_operation.rb +0 -2
  160. data/lib/mongo/error/invalid_database_name.rb +1 -4
  161. data/lib/mongo/error/invalid_document.rb +1 -4
  162. data/lib/mongo/error/invalid_file.rb +0 -3
  163. data/lib/mongo/error/invalid_file_revision.rb +0 -3
  164. data/lib/mongo/error/invalid_min_pool_size.rb +0 -3
  165. data/lib/mongo/error/invalid_nonce.rb +0 -3
  166. data/lib/mongo/error/invalid_read_concern.rb +2 -4
  167. data/lib/mongo/error/invalid_read_option.rb +0 -3
  168. data/lib/mongo/error/invalid_replacement_document.rb +2 -5
  169. data/lib/mongo/error/invalid_server_auth_host.rb +0 -2
  170. data/lib/mongo/error/invalid_server_auth_response.rb +0 -2
  171. data/lib/mongo/error/invalid_server_preference.rb +7 -16
  172. data/lib/mongo/error/invalid_session.rb +1 -4
  173. data/lib/mongo/error/invalid_signature.rb +0 -3
  174. data/lib/mongo/error/invalid_transaction_operation.rb +5 -8
  175. data/lib/mongo/error/invalid_txt_record.rb +0 -2
  176. data/lib/mongo/error/invalid_update_document.rb +2 -5
  177. data/lib/mongo/error/invalid_uri.rb +1 -4
  178. data/lib/mongo/error/invalid_write_concern.rb +2 -5
  179. data/lib/mongo/error/kms_error.rb +0 -2
  180. data/lib/mongo/error/labelable.rb +0 -3
  181. data/lib/mongo/error/lint_error.rb +0 -2
  182. data/lib/mongo/error/max_bson_size.rb +8 -11
  183. data/lib/mongo/error/max_message_size.rb +2 -5
  184. data/lib/mongo/error/mismatched_domain.rb +0 -2
  185. data/lib/mongo/error/missing_connection.rb +0 -2
  186. data/lib/mongo/error/missing_file_chunk.rb +0 -3
  187. data/lib/mongo/error/missing_password.rb +0 -2
  188. data/lib/mongo/error/missing_resume_token.rb +1 -4
  189. data/lib/mongo/error/missing_scram_server_signature.rb +2 -4
  190. data/lib/mongo/error/missing_service_id.rb +0 -2
  191. data/lib/mongo/error/mongocryptd_spawn_error.rb +0 -2
  192. data/lib/mongo/error/multi_index_drop.rb +0 -3
  193. data/lib/mongo/error/need_primary_server.rb +0 -2
  194. data/lib/mongo/error/no_server_available.rb +3 -8
  195. data/lib/mongo/error/no_service_connection_available.rb +1 -3
  196. data/lib/mongo/error/no_srv_records.rb +0 -2
  197. data/lib/mongo/error/notable.rb +8 -16
  198. data/lib/mongo/error/operation_failure.rb +22 -35
  199. data/lib/mongo/error/parser.rb +33 -75
  200. data/lib/mongo/error/pool_cleared_error.rb +1 -3
  201. data/lib/mongo/error/pool_closed_error.rb +0 -3
  202. data/lib/mongo/error/pool_error.rb +0 -3
  203. data/lib/mongo/error/pool_paused_error.rb +0 -2
  204. data/lib/mongo/error/raise_original_error.rb +1 -3
  205. data/lib/mongo/error/read_write_retryable.rb +14 -17
  206. data/lib/mongo/error/sdam_error_detection.rb +3 -5
  207. data/lib/mongo/error/server_api_conflict.rb +0 -2
  208. data/lib/mongo/error/server_certificate_revoked.rb +0 -2
  209. data/lib/mongo/error/server_not_usable.rb +0 -2
  210. data/lib/mongo/error/session_ended.rb +1 -3
  211. data/lib/mongo/error/session_not_materialized.rb +1 -3
  212. data/lib/mongo/error/sessions_not_supported.rb +1 -4
  213. data/lib/mongo/error/snapshot_session_invalid_server_version.rb +1 -4
  214. data/lib/mongo/error/snapshot_session_transaction_prohibited.rb +1 -4
  215. data/lib/mongo/error/socket_error.rb +0 -2
  216. data/lib/mongo/error/socket_timeout_error.rb +0 -2
  217. data/lib/mongo/error/transactions_not_supported.rb +3 -6
  218. data/lib/mongo/error/unchangeable_collection_option.rb +1 -4
  219. data/lib/mongo/error/unexpected_chunk_length.rb +0 -3
  220. data/lib/mongo/error/unexpected_response.rb +1 -4
  221. data/lib/mongo/error/unknown_payload_type.rb +0 -3
  222. data/lib/mongo/error/unmet_dependency.rb +0 -2
  223. data/lib/mongo/error/unsupported_array_filters.rb +3 -24
  224. data/lib/mongo/error/unsupported_collation.rb +3 -24
  225. data/lib/mongo/error/unsupported_features.rb +0 -2
  226. data/lib/mongo/error/unsupported_message_type.rb +0 -2
  227. data/lib/mongo/error/unsupported_option.rb +19 -21
  228. data/lib/mongo/error/write_retryable.rb +0 -2
  229. data/lib/mongo/error.rb +10 -24
  230. data/lib/mongo/event/base.rb +0 -2
  231. data/lib/mongo/event/listeners.rb +0 -3
  232. data/lib/mongo/event/publisher.rb +0 -3
  233. data/lib/mongo/event/subscriber.rb +0 -4
  234. data/lib/mongo/event.rb +4 -6
  235. data/lib/mongo/grid/file/chunk.rb +7 -10
  236. data/lib/mongo/grid/file/info.rb +20 -24
  237. data/lib/mongo/grid/file.rb +7 -8
  238. data/lib/mongo/grid/fs_bucket.rb +40 -48
  239. data/lib/mongo/grid/stream/read.rb +25 -35
  240. data/lib/mongo/grid/stream/write.rb +17 -22
  241. data/lib/mongo/grid/stream.rb +2 -4
  242. data/lib/mongo/grid.rb +0 -1
  243. data/lib/mongo/id.rb +0 -1
  244. data/lib/mongo/index/view.rb +68 -58
  245. data/lib/mongo/index.rb +7 -10
  246. data/lib/mongo/lint.rb +31 -37
  247. data/lib/mongo/loggable.rb +5 -8
  248. data/lib/mongo/logger.rb +1 -7
  249. data/lib/mongo/monitoring/cmap_log_subscriber.rb +0 -2
  250. data/lib/mongo/monitoring/command_log_subscriber.rb +25 -33
  251. data/lib/mongo/monitoring/event/cmap/base.rb +0 -2
  252. data/lib/mongo/monitoring/event/cmap/connection_check_out_failed.rb +1 -4
  253. data/lib/mongo/monitoring/event/cmap/connection_check_out_started.rb +0 -3
  254. data/lib/mongo/monitoring/event/cmap/connection_checked_in.rb +1 -4
  255. data/lib/mongo/monitoring/event/cmap/connection_checked_out.rb +2 -5
  256. data/lib/mongo/monitoring/event/cmap/connection_closed.rb +1 -4
  257. data/lib/mongo/monitoring/event/cmap/connection_created.rb +1 -4
  258. data/lib/mongo/monitoring/event/cmap/connection_ready.rb +1 -4
  259. data/lib/mongo/monitoring/event/cmap/pool_cleared.rb +0 -3
  260. data/lib/mongo/monitoring/event/cmap/pool_closed.rb +1 -4
  261. data/lib/mongo/monitoring/event/cmap/pool_created.rb +1 -4
  262. data/lib/mongo/monitoring/event/cmap/pool_ready.rb +1 -4
  263. data/lib/mongo/monitoring/event/cmap.rb +0 -1
  264. data/lib/mongo/monitoring/event/command_failed.rb +5 -9
  265. data/lib/mongo/monitoring/event/command_started.rb +8 -12
  266. data/lib/mongo/monitoring/event/command_succeeded.rb +7 -15
  267. data/lib/mongo/monitoring/event/secure.rb +15 -20
  268. data/lib/mongo/monitoring/event/server_closed.rb +1 -4
  269. data/lib/mongo/monitoring/event/server_description_changed.rb +4 -8
  270. data/lib/mongo/monitoring/event/server_heartbeat_failed.rb +5 -10
  271. data/lib/mongo/monitoring/event/server_heartbeat_started.rb +1 -4
  272. data/lib/mongo/monitoring/event/server_heartbeat_succeeded.rb +3 -8
  273. data/lib/mongo/monitoring/event/server_opening.rb +1 -4
  274. data/lib/mongo/monitoring/event/topology_changed.rb +2 -5
  275. data/lib/mongo/monitoring/event/topology_closed.rb +1 -4
  276. data/lib/mongo/monitoring/event/topology_opening.rb +1 -4
  277. data/lib/mongo/monitoring/event.rb +0 -1
  278. data/lib/mongo/monitoring/publishable.rb +20 -30
  279. data/lib/mongo/monitoring/sdam_log_subscriber.rb +0 -2
  280. data/lib/mongo/monitoring/server_closed_log_subscriber.rb +0 -3
  281. data/lib/mongo/monitoring/server_description_changed_log_subscriber.rb +0 -3
  282. data/lib/mongo/monitoring/server_opening_log_subscriber.rb +0 -3
  283. data/lib/mongo/monitoring/topology_changed_log_subscriber.rb +5 -8
  284. data/lib/mongo/monitoring/topology_closed_log_subscriber.rb +0 -3
  285. data/lib/mongo/monitoring/topology_opening_log_subscriber.rb +0 -3
  286. data/lib/mongo/monitoring/unified_sdam_log_subscriber.rb +1 -3
  287. data/lib/mongo/monitoring.rb +38 -39
  288. data/lib/mongo/operation/aggregate/op_msg.rb +0 -2
  289. data/lib/mongo/operation/aggregate/result.rb +3 -6
  290. data/lib/mongo/operation/aggregate.rb +0 -2
  291. data/lib/mongo/operation/collections_info/result.rb +0 -3
  292. data/lib/mongo/operation/collections_info.rb +0 -2
  293. data/lib/mongo/operation/command/op_msg.rb +1 -4
  294. data/lib/mongo/operation/command.rb +0 -2
  295. data/lib/mongo/operation/context.rb +13 -16
  296. data/lib/mongo/operation/count/op_msg.rb +2 -4
  297. data/lib/mongo/operation/count.rb +0 -2
  298. data/lib/mongo/operation/create/op_msg.rb +2 -5
  299. data/lib/mongo/operation/create.rb +4 -2
  300. data/lib/mongo/operation/create_index/op_msg.rb +3 -7
  301. data/lib/mongo/operation/create_index.rb +0 -2
  302. data/lib/mongo/operation/create_user/op_msg.rb +2 -4
  303. data/lib/mongo/operation/create_user.rb +0 -2
  304. data/lib/mongo/operation/delete/bulk_result.rb +2 -3
  305. data/lib/mongo/operation/delete/op_msg.rb +3 -10
  306. data/lib/mongo/operation/delete/result.rb +0 -3
  307. data/lib/mongo/operation/delete.rb +1 -5
  308. data/lib/mongo/operation/distinct/op_msg.rb +2 -5
  309. data/lib/mongo/operation/distinct.rb +0 -2
  310. data/lib/mongo/operation/drop/op_msg.rb +0 -2
  311. data/lib/mongo/operation/drop.rb +0 -2
  312. data/lib/mongo/operation/drop_database/op_msg.rb +0 -2
  313. data/lib/mongo/operation/drop_database.rb +0 -2
  314. data/lib/mongo/operation/drop_index/op_msg.rb +4 -6
  315. data/lib/mongo/operation/drop_index.rb +0 -2
  316. data/lib/mongo/operation/explain/op_msg.rb +0 -2
  317. data/lib/mongo/operation/explain/result.rb +0 -3
  318. data/lib/mongo/operation/explain.rb +0 -2
  319. data/lib/mongo/operation/find/builder/command.rb +4 -12
  320. data/lib/mongo/operation/find/builder/flags.rb +9 -15
  321. data/lib/mongo/operation/find/builder/modifiers.rb +1 -4
  322. data/lib/mongo/operation/find/builder.rb +0 -1
  323. data/lib/mongo/operation/find/op_msg.rb +4 -12
  324. data/lib/mongo/operation/find/result.rb +0 -3
  325. data/lib/mongo/operation/find.rb +0 -2
  326. data/lib/mongo/operation/get_more/command_builder.rb +1 -6
  327. data/lib/mongo/operation/get_more/op_msg.rb +10 -4
  328. data/lib/mongo/operation/get_more/result.rb +0 -3
  329. data/lib/mongo/operation/get_more.rb +0 -2
  330. data/lib/mongo/operation/indexes/op_msg.rb +0 -2
  331. data/lib/mongo/operation/indexes/result.rb +1 -5
  332. data/lib/mongo/operation/indexes.rb +0 -2
  333. data/lib/mongo/operation/insert/bulk_result.rb +2 -6
  334. data/lib/mongo/operation/insert/op_msg.rb +7 -6
  335. data/lib/mongo/operation/insert/result.rb +0 -3
  336. data/lib/mongo/operation/insert.rb +2 -5
  337. data/lib/mongo/operation/kill_cursors/command_builder.rb +0 -3
  338. data/lib/mongo/operation/kill_cursors/op_msg.rb +1 -3
  339. data/lib/mongo/operation/kill_cursors.rb +0 -2
  340. data/lib/mongo/operation/list_collections/op_msg.rb +4 -6
  341. data/lib/mongo/operation/list_collections/result.rb +1 -4
  342. data/lib/mongo/operation/list_collections.rb +0 -2
  343. data/lib/mongo/operation/map_reduce/op_msg.rb +0 -2
  344. data/lib/mongo/operation/map_reduce/result.rb +3 -6
  345. data/lib/mongo/operation/map_reduce.rb +0 -2
  346. data/lib/mongo/operation/op_msg_base.rb +0 -1
  347. data/lib/mongo/operation/parallel_scan/op_msg.rb +4 -5
  348. data/lib/mongo/operation/parallel_scan/result.rb +2 -5
  349. data/lib/mongo/operation/parallel_scan.rb +0 -2
  350. data/lib/mongo/operation/remove_user/op_msg.rb +2 -4
  351. data/lib/mongo/operation/remove_user.rb +0 -2
  352. data/lib/mongo/operation/result.rb +38 -48
  353. data/lib/mongo/operation/shared/bypass_document_validation.rb +3 -7
  354. data/lib/mongo/operation/shared/causal_consistency_supported.rb +0 -3
  355. data/lib/mongo/operation/shared/executable.rb +29 -31
  356. data/lib/mongo/operation/shared/executable_no_validate.rb +0 -3
  357. data/lib/mongo/operation/shared/executable_transaction_label.rb +0 -2
  358. data/lib/mongo/operation/shared/idable.rb +3 -6
  359. data/lib/mongo/operation/shared/limited.rb +0 -3
  360. data/lib/mongo/operation/shared/object_id_generator.rb +0 -3
  361. data/lib/mongo/operation/shared/op_msg_executable.rb +0 -2
  362. data/lib/mongo/operation/shared/polymorphic_lookup.rb +0 -2
  363. data/lib/mongo/operation/shared/polymorphic_result.rb +2 -4
  364. data/lib/mongo/operation/shared/read_preference_supported.rb +10 -15
  365. data/lib/mongo/operation/shared/response_handling.rb +13 -26
  366. data/lib/mongo/operation/shared/result/aggregatable.rb +12 -13
  367. data/lib/mongo/operation/shared/sessions_supported.rb +87 -99
  368. data/lib/mongo/operation/shared/specifiable.rb +37 -59
  369. data/lib/mongo/operation/shared/write.rb +12 -17
  370. data/lib/mongo/operation/shared/write_concern_supported.rb +4 -7
  371. data/lib/mongo/operation/update/bulk_result.rb +13 -17
  372. data/lib/mongo/operation/update/op_msg.rb +2 -5
  373. data/lib/mongo/operation/update/result.rb +5 -5
  374. data/lib/mongo/operation/update.rb +1 -5
  375. data/lib/mongo/operation/update_user/op_msg.rb +2 -4
  376. data/lib/mongo/operation/update_user.rb +0 -2
  377. data/lib/mongo/operation/users_info/op_msg.rb +2 -4
  378. data/lib/mongo/operation/users_info/result.rb +1 -4
  379. data/lib/mongo/operation/users_info.rb +0 -2
  380. data/lib/mongo/operation/write_command/op_msg.rb +2 -10
  381. data/lib/mongo/operation/write_command.rb +0 -2
  382. data/lib/mongo/operation.rb +9 -14
  383. data/lib/mongo/options/mapper.rb +8 -15
  384. data/lib/mongo/options/redacted.rb +7 -9
  385. data/lib/mongo/options.rb +0 -1
  386. data/lib/mongo/protocol/bit_vector.rb +3 -5
  387. data/lib/mongo/protocol/caching_hash.rb +2 -7
  388. data/lib/mongo/protocol/compressed.rb +5 -10
  389. data/lib/mongo/protocol/get_more.rb +2 -8
  390. data/lib/mongo/protocol/kill_cursors.rb +2 -8
  391. data/lib/mongo/protocol/message.rb +103 -105
  392. data/lib/mongo/protocol/msg.rb +48 -63
  393. data/lib/mongo/protocol/query.rb +32 -41
  394. data/lib/mongo/protocol/registry.rb +2 -5
  395. data/lib/mongo/protocol/reply.rb +10 -16
  396. data/lib/mongo/protocol/serializers.rb +41 -59
  397. data/lib/mongo/protocol.rb +0 -1
  398. data/lib/mongo/query_cache.rb +7 -15
  399. data/lib/mongo/retryable/backpressure.rb +31 -0
  400. data/lib/mongo/retryable/base_worker.rb +39 -13
  401. data/lib/mongo/retryable/read_worker.rb +77 -21
  402. data/lib/mongo/retryable/retry_policy.rb +59 -0
  403. data/lib/mongo/retryable/write_worker.rb +155 -56
  404. data/lib/mongo/retryable.rb +70 -9
  405. data/lib/mongo/search_index/view.rb +30 -10
  406. data/lib/mongo/semaphore.rb +0 -1
  407. data/lib/mongo/server/app_metadata/environment.rb +3 -3
  408. data/lib/mongo/server/app_metadata/platform.rb +17 -4
  409. data/lib/mongo/server/app_metadata.rb +4 -5
  410. data/lib/mongo/server/connection.rb +79 -61
  411. data/lib/mongo/server/connection_base.rb +43 -53
  412. data/lib/mongo/server/connection_common.rb +41 -64
  413. data/lib/mongo/server/connection_pool/generation_manager.rb +6 -11
  414. data/lib/mongo/server/connection_pool/populator.rb +1 -4
  415. data/lib/mongo/server/connection_pool.rb +195 -167
  416. data/lib/mongo/server/description/features.rb +51 -59
  417. data/lib/mongo/server/description/load_balancer.rb +0 -2
  418. data/lib/mongo/server/description.rb +117 -138
  419. data/lib/mongo/server/monitor/app_metadata.rb +3 -4
  420. data/lib/mongo/server/monitor/connection.rb +28 -35
  421. data/lib/mongo/server/monitor.rb +65 -60
  422. data/lib/mongo/server/pending_connection.rb +70 -71
  423. data/lib/mongo/server/push_monitor/connection.rb +0 -3
  424. data/lib/mongo/server/push_monitor.rb +21 -29
  425. data/lib/mongo/server/round_trip_time_calculator.rb +11 -17
  426. data/lib/mongo/server.rb +62 -94
  427. data/lib/mongo/server_selector/base.rb +133 -157
  428. data/lib/mongo/server_selector/nearest.rb +2 -5
  429. data/lib/mongo/server_selector/primary.rb +1 -5
  430. data/lib/mongo/server_selector/primary_preferred.rb +2 -6
  431. data/lib/mongo/server_selector/secondary.rb +2 -6
  432. data/lib/mongo/server_selector/secondary_preferred.rb +1 -5
  433. data/lib/mongo/server_selector.rb +3 -4
  434. data/lib/mongo/session/server_session.rb +6 -7
  435. data/lib/mongo/session/session_pool.rb +20 -34
  436. data/lib/mongo/session.rb +334 -199
  437. data/lib/mongo/socket/ocsp_cache.rb +8 -13
  438. data/lib/mongo/socket/ocsp_verifier.rb +69 -70
  439. data/lib/mongo/socket/ssl.rb +44 -43
  440. data/lib/mongo/socket/tcp.rb +5 -8
  441. data/lib/mongo/socket/unix.rb +0 -4
  442. data/lib/mongo/socket.rb +80 -102
  443. data/lib/mongo/srv/monitor.rb +10 -11
  444. data/lib/mongo/srv/resolver.rb +15 -24
  445. data/lib/mongo/srv/result.rb +25 -21
  446. data/lib/mongo/srv.rb +0 -1
  447. data/lib/mongo/timeout.rb +4 -11
  448. data/lib/mongo/topology_version.rb +8 -13
  449. data/lib/mongo/tracing/open_telemetry/command_tracer.rb +320 -0
  450. data/lib/mongo/tracing/open_telemetry/operation_tracer.rb +227 -0
  451. data/lib/mongo/tracing/open_telemetry/tracer.rb +236 -0
  452. data/lib/mongo/{error/server_api_not_supported.rb → tracing/open_telemetry.rb} +10 -10
  453. data/lib/mongo/tracing.rb +42 -0
  454. data/lib/mongo/uri/options_mapper.rb +135 -126
  455. data/lib/mongo/uri/srv_protocol.rb +34 -42
  456. data/lib/mongo/uri.rb +95 -139
  457. data/lib/mongo/utils.rb +5 -12
  458. data/lib/mongo/version.rb +1 -1
  459. data/lib/mongo/write_concern/acknowledged.rb +0 -2
  460. data/lib/mongo/write_concern/base.rb +6 -6
  461. data/lib/mongo/write_concern/unacknowledged.rb +0 -2
  462. data/lib/mongo/write_concern.rb +14 -15
  463. data/lib/mongo.rb +4 -3
  464. data/mongo.gemspec +17 -17
  465. metadata +11 -5
  466. data/lib/mongo/operation/shared/result/use_legacy_error_parser.rb +0 -32
  467. data/lib/mongo/operation/shared/validatable.rb +0 -87
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2014-2020 MongoDB Inc.
5
4
  #
@@ -18,24 +17,22 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class Aggregate
21
-
22
20
  # Defines custom behavior of results in an aggregation context.
23
21
  #
24
22
  # @since 2.0.0
25
23
  # @api semiprivate
26
24
  class Result < Operation::Result
27
-
28
25
  # The field name for the aggregation explain information.
29
26
  #
30
27
  # @since 2.0.5
31
28
  # @api private
32
- EXPLAIN = 'stages'.freeze
29
+ EXPLAIN = 'stages'
33
30
 
34
31
  # The legacy field name for the aggregation explain information.
35
32
  #
36
33
  # @since 2.0.5
37
34
  # @api private
38
- EXPLAIN_LEGACY = 'serverPipeline'.freeze
35
+ EXPLAIN_LEGACY = 'serverPipeline'
39
36
 
40
37
  # Get the cursor id for the result.
41
38
  #
@@ -88,7 +85,7 @@ module Mongo
88
85
  # This should only be called on explain responses; it will never
89
86
  # return a nil result and will only be meaningful on explain responses
90
87
  def explain_document
91
- first_document[EXPLAIN] || first_document[EXPLAIN_LEGACY] || [first_document]
88
+ first_document[EXPLAIN] || first_document[EXPLAIN_LEGACY] || [ first_document ]
92
89
  end
93
90
 
94
91
  def cursor_document
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2015-2020 MongoDB Inc.
5
4
  #
@@ -20,7 +19,6 @@ require 'mongo/operation/aggregate/result'
20
19
 
21
20
  module Mongo
22
21
  module Operation
23
-
24
22
  # A MongoDB aggregate operation.
25
23
  #
26
24
  # @note An aggregate operation can behave like a read and return a
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2014-2020 MongoDB Inc.
5
4
  #
@@ -18,14 +17,12 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class CollectionsInfo
21
-
22
20
  # Defines custom behavior of results when query the system.namespaces
23
21
  # collection.
24
22
  #
25
23
  # @since 2.1.0
26
24
  # @api semiprivate
27
25
  class Result < Operation::Result
28
-
29
26
  # Initialize a new result.
30
27
  #
31
28
  # @param [ Array<Protocol::Message> | nil ] replies The wire protocol replies, if any.
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2015-2020 MongoDB Inc.
5
4
  #
@@ -19,7 +18,6 @@ require 'mongo/operation/collections_info/result'
19
18
 
20
19
  module Mongo
21
20
  module Operation
22
-
23
21
  # A MongoDB operation to get info on all collections in a given database.
24
22
  #
25
23
  # @api private
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2018-2020 MongoDB Inc.
5
4
  #
@@ -18,15 +17,13 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class Command
21
-
22
20
  # A MongoDB command operation sent as an op message.
23
21
  #
24
22
  # @api private
25
23
  #
26
24
  # @since 2.5.2
27
25
  class OpMsg < OpMsgBase
28
-
29
- def selector(connection)
26
+ def selector(_connection)
30
27
  spec[:selector].dup.tap do |sel|
31
28
  sel[:comment] = spec[:comment] unless spec[:comment].nil?
32
29
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2015-2020 MongoDB Inc.
5
4
  #
@@ -19,7 +18,6 @@ require 'mongo/operation/command/op_msg'
19
18
 
20
19
  module Mongo
21
20
  module Operation
22
-
23
21
  # A MongoDB general command operation.
24
22
  #
25
23
  # @api private
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2021 MongoDB Inc.
5
4
  #
@@ -17,7 +16,6 @@
17
16
 
18
17
  module Mongo
19
18
  module Operation
20
-
21
19
  # Context for operations.
22
20
  #
23
21
  # Holds various objects needed to make decisions about operation execution
@@ -44,17 +42,14 @@ module Mongo
44
42
  options: nil
45
43
  )
46
44
  if options
47
- if client
48
- raise ArgumentError, 'Client and options cannot both be specified'
49
- end
45
+ raise ArgumentError, 'Client and options cannot both be specified' if client
50
46
 
51
- if session
52
- raise ArgumentError, 'Session and options cannot both be specified'
53
- end
47
+ raise ArgumentError, 'Session and options cannot both be specified' if session
54
48
  end
55
49
 
56
50
  if connection_global_id && session&.pinned_connection_global_id
57
- raise ArgumentError, 'Trying to pin context to a connection when the session is already pinned to a connection.'
51
+ raise ArgumentError,
52
+ 'Trying to pin context to a connection when the session is already pinned to a connection.'
58
53
  end
59
54
 
60
55
  @client = client
@@ -65,10 +60,7 @@ module Mongo
65
60
  super(session: session, operation_timeouts: operation_timeouts)
66
61
  end
67
62
 
68
- attr_reader :client
69
- attr_reader :session
70
- attr_reader :view
71
- attr_reader :options
63
+ attr_reader :client, :session, :view, :options
72
64
 
73
65
  # Returns a new Operation::Context with the deadline refreshed
74
66
  # and relative to the current moment.
@@ -131,6 +123,11 @@ module Mongo
131
123
  !!@is_retry
132
124
  end
133
125
 
126
+ # Whether every retry so far has been due to overload only.
127
+ def overload_only_retry?
128
+ !!@overload_only_retry
129
+ end
130
+
134
131
  # Returns a new context with the parameters changed as per the
135
132
  # provided arguments.
136
133
  #
@@ -161,11 +158,11 @@ module Mongo
161
158
  end
162
159
 
163
160
  def encrypter
164
- if client&.encrypter
165
- client.encrypter
166
- else
161
+ unless client&.encrypter
167
162
  raise Error::InternalDriverError, 'Encrypter should only be accessed when encryption is to be performed'
168
163
  end
164
+
165
+ client.encrypter
169
166
  end
170
167
 
171
168
  def inspect
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2018-2020 MongoDB Inc.
5
4
  #
@@ -18,7 +17,6 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class Count
21
-
22
20
  # A MongoDB count operation sent as an op message.
23
21
  #
24
22
  # @api private
@@ -29,10 +27,10 @@ module Mongo
29
27
 
30
28
  private
31
29
 
32
- def selector(connection)
30
+ def selector(_connection)
33
31
  spec[:selector].merge(
34
32
  collation: spec[:collation],
35
- comment: spec[:comment],
33
+ comment: spec[:comment]
36
34
  ).compact
37
35
  end
38
36
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2015-2020 MongoDB Inc.
5
4
  #
@@ -19,7 +18,6 @@ require 'mongo/operation/count/op_msg'
19
18
 
20
19
  module Mongo
21
20
  module Operation
22
-
23
21
  # A MongoDB count command operation.
24
22
  #
25
23
  # @api private
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2018-2020 MongoDB Inc.
5
4
  #
@@ -18,7 +17,6 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class Create
21
-
22
20
  # A MongoDB create collection operation sent as an op message.
23
21
  #
24
22
  # @api private
@@ -29,11 +27,10 @@ module Mongo
29
27
 
30
28
  private
31
29
 
32
- def selector(connection)
33
- # Collation is always supported on 3.6+ servers that would use OP_MSG.
30
+ def selector(_connection)
34
31
  spec[:selector].merge(
35
32
  collation: spec[:collation],
36
- encryptedFields: spec[:encrypted_fields],
33
+ encryptedFields: spec[:encrypted_fields]
37
34
  ).compact
38
35
  end
39
36
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2015-2020 MongoDB Inc.
5
4
  #
@@ -19,7 +18,6 @@ require 'mongo/operation/create/op_msg'
19
18
 
20
19
  module Mongo
21
20
  module Operation
22
-
23
21
  # A MongoDB create collection command operation.
24
22
  #
25
23
  # @api private
@@ -28,6 +26,10 @@ module Mongo
28
26
  class Create
29
27
  include Specifiable
30
28
  include OpMsgExecutable
29
+
30
+ def encrypted_fields=(value)
31
+ @spec[:encrypted_fields] = value
32
+ end
31
33
  end
32
34
  end
33
35
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2018-2020 MongoDB Inc.
5
4
  #
@@ -18,7 +17,6 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class CreateIndex
21
-
22
20
  # A MongoDB createindex operation sent as an op message.
23
21
  #
24
22
  # @api private
@@ -36,15 +34,13 @@ module Mongo
36
34
  comment: spec[:comment],
37
35
  }.compact.tap do |selector|
38
36
  if commit_quorum = spec[:commit_quorum]
39
- # While server versions 3.4 and newer generally perform option
40
- # validation, there was a bug on server versions 4.2.0 - 4.2.5 where
37
+ # There was a bug on server versions 4.2.0 - 4.2.5 where
41
38
  # the server would accept the commitQuorum option and use it internally
42
39
  # (see SERVER-47193). As a result, the drivers specifications require
43
40
  # drivers to perform validation and raise an error when the commitQuorum
44
41
  # option is passed to servers that don't support it.
45
- unless connection.features.commit_quorum_enabled?
46
- raise Error::UnsupportedOption.commit_quorum_error
47
- end
42
+ raise Error::UnsupportedOption.commit_quorum_error unless connection.features.commit_quorum_enabled?
43
+
48
44
  selector[:commitQuorum] = commit_quorum
49
45
  end
50
46
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2015-2020 MongoDB Inc.
5
4
  #
@@ -19,7 +18,6 @@ require 'mongo/operation/create_index/op_msg'
19
18
 
20
19
  module Mongo
21
20
  module Operation
22
-
23
21
  # A MongoDB create index command operation.
24
22
  #
25
23
  # @api private
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2018-2020 MongoDB Inc.
5
4
  #
@@ -18,7 +17,6 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class CreateUser
21
-
22
20
  # A MongoDB createuser operation sent as an op message.
23
21
  #
24
22
  # @api private
@@ -29,8 +27,8 @@ module Mongo
29
27
 
30
28
  private
31
29
 
32
- def selector(connection)
33
- { :createUser => user.name }.merge(user.spec)
30
+ def selector(_connection)
31
+ { createUser: user.name }.merge(user.spec)
34
32
  end
35
33
  end
36
34
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2015-2020 MongoDB Inc.
5
4
  #
@@ -19,7 +18,6 @@ require 'mongo/operation/create_user/op_msg'
19
18
 
20
19
  module Mongo
21
20
  module Operation
22
-
23
21
  # A MongoDB create user command operation.
24
22
  #
25
23
  # @api private
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2014-2020 MongoDB Inc.
5
4
  #
@@ -18,7 +17,6 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class Delete
21
-
22
20
  # Defines custom behavior of results for a delete when part of a bulk write.
23
21
  #
24
22
  # @since 2.0.0
@@ -37,9 +35,10 @@ module Mongo
37
35
  # @api public
38
36
  def n_removed
39
37
  return 0 unless acknowledged?
38
+
40
39
  @replies.reduce(0) do |n, reply|
41
40
  if reply.documents.first[Result::N]
42
- n += reply.documents.first[Result::N]
41
+ n + reply.documents.first[Result::N]
43
42
  else
44
43
  n
45
44
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2018-2020 MongoDB Inc.
5
4
  #
@@ -18,7 +17,6 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class Delete
21
-
22
20
  # A MongoDB delete operation sent as an op message.
23
21
  #
24
22
  # @api private
@@ -29,21 +27,16 @@ module Mongo
29
27
  include ExecutableNoValidate
30
28
  include ExecutableTransactionLabel
31
29
  include PolymorphicResult
32
- include Validatable
33
30
 
34
31
  private
35
32
 
36
- def selector(connection)
33
+ def selector(_connection)
37
34
  { delete: coll_name,
38
35
  Protocol::Msg::DATABASE_IDENTIFIER => db_name,
39
36
  ordered: ordered?,
40
37
  let: spec[:let],
41
- comment: spec[:comment],
42
- }.compact.tap do |selector|
43
- if hint = spec[:hint]
44
- validate_hint_on_update(connection, selector)
45
- selector[:hint] = hint
46
- end
38
+ comment: spec[:comment], }.compact.tap do |selector|
39
+ selector[:hint] = spec[:hint] if spec[:hint]
47
40
  end
48
41
  end
49
42
 
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2014-2020 MongoDB Inc.
5
4
  #
@@ -18,13 +17,11 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class Delete
21
-
22
20
  # Defines custom behavior of results for a delete.
23
21
  #
24
22
  # @since 2.0.0
25
23
  # @api semiprivate
26
24
  class Result < Operation::Result
27
-
28
25
  # Get the number of documents deleted.
29
26
  #
30
27
  # @example Get the deleted count.
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2015-2020 MongoDB Inc.
5
4
  #
@@ -21,7 +20,6 @@ require 'mongo/operation/delete/bulk_result'
21
20
 
22
21
  module Mongo
23
22
  module Operation
24
-
25
23
  # A MongoDB delete operation.
26
24
  #
27
25
  # @api private
@@ -31,9 +29,7 @@ module Mongo
31
29
  include Specifiable
32
30
  include Write
33
31
 
34
- private
35
-
36
- IDENTIFIER = 'deletes'.freeze
32
+ IDENTIFIER = 'deletes'
37
33
  end
38
34
  end
39
35
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2018-2020 MongoDB Inc.
5
4
  #
@@ -18,7 +17,6 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class Distinct
21
-
22
20
  # A MongoDB distinct operation sent as an op message.
23
21
  #
24
22
  # @api private
@@ -30,11 +28,10 @@ module Mongo
30
28
 
31
29
  private
32
30
 
33
- def selector(connection)
34
- # Collation is always supported on 3.6+ servers that would use OP_MSG.
31
+ def selector(_connection)
35
32
  spec[:selector].merge(
36
33
  collation: spec[:collation],
37
- comment: spec[:comment],
34
+ comment: spec[:comment]
38
35
  ).compact
39
36
  end
40
37
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2017-2020 MongoDB Inc.
5
4
  #
@@ -19,7 +18,6 @@ require 'mongo/operation/distinct/op_msg'
19
18
 
20
19
  module Mongo
21
20
  module Operation
22
-
23
21
  # A MongoDB distinct command operation.
24
22
  #
25
23
  # @api private
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2018-2020 MongoDB Inc.
5
4
  #
@@ -18,7 +17,6 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class Drop
21
-
22
20
  # A MongoDB drop collection operation sent as an op message.
23
21
  #
24
22
  # @api private
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2015-2020 MongoDB Inc.
5
4
  #
@@ -19,7 +18,6 @@ require 'mongo/operation/drop/op_msg'
19
18
 
20
19
  module Mongo
21
20
  module Operation
22
-
23
21
  # A MongoDB drop collection operation.
24
22
  #
25
23
  # @api private
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2018-2020 MongoDB Inc.
5
4
  #
@@ -18,7 +17,6 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class DropDatabase
21
-
22
20
  # A MongoDB drop database operation sent as an op message.
23
21
  #
24
22
  # @api private
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2015-2020 MongoDB Inc.
5
4
  #
@@ -19,7 +18,6 @@ require 'mongo/operation/drop_database/op_msg'
19
18
 
20
19
  module Mongo
21
20
  module Operation
22
-
23
21
  # A MongoDB drop database operation.
24
22
  #
25
23
  # @api private
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2018-2020 MongoDB Inc.
5
4
  #
@@ -18,7 +17,6 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class DropIndex
21
-
22
20
  # A MongoDB dropindex operation sent as an op message.
23
21
  #
24
22
  # @api private
@@ -29,11 +27,11 @@ module Mongo
29
27
 
30
28
  private
31
29
 
32
- def selector(connection)
30
+ def selector(_connection)
33
31
  {
34
- :dropIndexes => coll_name,
35
- :index => index_name,
36
- :comment => spec[:comment],
32
+ dropIndexes: coll_name,
33
+ index: index_name,
34
+ comment: spec[:comment],
37
35
  }.compact
38
36
  end
39
37
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2015-2020 MongoDB Inc.
5
4
  #
@@ -19,7 +18,6 @@ require 'mongo/operation/drop_index/op_msg'
19
18
 
20
19
  module Mongo
21
20
  module Operation
22
-
23
21
  # A MongoDB drop index operation.
24
22
  #
25
23
  # @api private
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2018-2020 MongoDB Inc.
5
4
  #
@@ -18,7 +17,6 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class Explain
21
-
22
20
  # A MongoDB explain operation sent as an op message.
23
21
  #
24
22
  # @api private
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2018-2020 MongoDB Inc.
5
4
  #
@@ -18,13 +17,11 @@
18
17
  module Mongo
19
18
  module Operation
20
19
  class Explain
21
-
22
20
  # Defines custom behavior of results in find command with explain.
23
21
  #
24
22
  # @since 2.5.0
25
23
  # @api semiprivate
26
24
  class Result < Operation::Result
27
-
28
25
  # Get the cursor id.
29
26
  #
30
27
  # @example Get the cursor id.
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # rubocop:todo all
3
2
 
4
3
  # Copyright (C) 2015-2020 MongoDB Inc.
5
4
  #
@@ -20,7 +19,6 @@ require 'mongo/operation/explain/op_msg'
20
19
 
21
20
  module Mongo
22
21
  module Operation
23
-
24
22
  # A MongoDB explain operation.
25
23
  #
26
24
  # @api private