mongo 1.12.5 → 2.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (437) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/CONTRIBUTING.md +64 -0
  5. data/LICENSE +1 -1
  6. data/README.md +23 -125
  7. data/Rakefile +26 -21
  8. data/bin/mongo_console +6 -38
  9. data/lib/mongo.rb +23 -82
  10. data/lib/mongo/address.rb +111 -0
  11. data/lib/mongo/address/ipv4.rb +85 -0
  12. data/lib/mongo/address/ipv6.rb +85 -0
  13. data/lib/mongo/address/unix.rb +76 -0
  14. data/lib/mongo/auth.rb +108 -0
  15. data/lib/mongo/auth/cr.rb +44 -0
  16. data/lib/mongo/auth/cr/conversation.rb +119 -0
  17. data/lib/mongo/auth/executable.rb +52 -0
  18. data/lib/mongo/auth/ldap.rb +48 -0
  19. data/lib/mongo/auth/ldap/conversation.rb +92 -0
  20. data/lib/mongo/auth/roles.rb +104 -0
  21. data/lib/mongo/auth/scram.rb +53 -0
  22. data/lib/mongo/auth/scram/conversation.rb +450 -0
  23. data/lib/mongo/auth/user.rb +159 -0
  24. data/lib/mongo/auth/user/view.rb +102 -0
  25. data/lib/mongo/auth/x509.rb +48 -0
  26. data/lib/mongo/auth/x509/conversation.rb +92 -0
  27. data/lib/mongo/{gridfs.rb → bulk.rb} +2 -5
  28. data/lib/mongo/bulk/bulk_write.rb +307 -0
  29. data/lib/mongo/client.rb +233 -0
  30. data/lib/mongo/cluster.rb +203 -0
  31. data/lib/mongo/cluster/topology.rb +60 -0
  32. data/lib/mongo/cluster/topology/replica_set.rb +160 -0
  33. data/lib/mongo/cluster/topology/sharded.rb +132 -0
  34. data/lib/mongo/cluster/topology/standalone.rb +132 -0
  35. data/lib/mongo/cluster/topology/unknown.rb +155 -0
  36. data/lib/mongo/collection.rb +130 -1101
  37. data/lib/mongo/collection/view.rb +169 -0
  38. data/lib/mongo/collection/view/aggregation.rb +108 -0
  39. data/lib/mongo/collection/view/explainable.rb +49 -0
  40. data/lib/mongo/collection/view/immutable.rb +43 -0
  41. data/lib/mongo/collection/view/iterable.rb +48 -0
  42. data/lib/mongo/collection/view/map_reduce.rb +191 -0
  43. data/lib/mongo/collection/view/readable.rb +363 -0
  44. data/lib/mongo/collection/view/writable.rb +169 -0
  45. data/lib/mongo/cursor.rb +79 -680
  46. data/lib/mongo/database.rb +224 -0
  47. data/lib/mongo/database/view.rb +101 -0
  48. data/lib/mongo/error.rb +81 -0
  49. data/lib/mongo/error/bulk_write_failure.rb +41 -0
  50. data/lib/mongo/{utils/thread_local_variable_manager.rb → error/empty_batch.rb} +22 -8
  51. data/{test/functional/db_connection_test.rb → lib/mongo/error/invalid_bulk_operation.rb} +19 -8
  52. data/lib/mongo/error/invalid_collection_name.rb +39 -0
  53. data/lib/mongo/error/invalid_database_name.rb +39 -0
  54. data/{test/replica_set/ssl_test.rb → lib/mongo/error/invalid_document.rb} +21 -14
  55. data/lib/mongo/error/invalid_file.rb +38 -0
  56. data/lib/mongo/error/invalid_nonce.rb +46 -0
  57. data/lib/mongo/error/invalid_replacement_document.rb +39 -0
  58. data/lib/mongo/error/invalid_signature.rb +47 -0
  59. data/{test/functional/ssl_test.rb → lib/mongo/error/invalid_update_document.rb} +22 -12
  60. data/lib/mongo/error/max_bson_size.rb +40 -0
  61. data/lib/mongo/error/max_message_size.rb +42 -0
  62. data/lib/mongo/{utils.rb → error/need_primary_server.rb} +10 -6
  63. data/lib/mongo/{connection.rb → error/operation_failure.rb} +10 -6
  64. data/lib/mongo/error/parser.rb +77 -0
  65. data/lib/mongo/{connection/socket.rb → error/socket_error.rb} +10 -5
  66. data/lib/mongo/error/socket_timeout_error.rb +23 -0
  67. data/lib/mongo/error/unsupported_features.rb +43 -0
  68. data/lib/mongo/event.rb +40 -0
  69. data/lib/mongo/event/listeners.rb +63 -0
  70. data/lib/mongo/event/primary_elected.rb +53 -0
  71. data/lib/mongo/event/publisher.rb +42 -0
  72. data/lib/mongo/event/server_added.rb +53 -0
  73. data/lib/mongo/event/server_removed.rb +53 -0
  74. data/lib/mongo/event/subscriber.rb +41 -0
  75. data/lib/mongo/grid.rb +16 -0
  76. data/lib/mongo/grid/file.rb +94 -0
  77. data/lib/mongo/grid/file/chunk.rb +184 -0
  78. data/lib/mongo/grid/file/metadata.rb +223 -0
  79. data/lib/mongo/grid/fs.rb +149 -0
  80. data/lib/mongo/index.rb +64 -0
  81. data/lib/mongo/index/view.rb +205 -0
  82. data/lib/mongo/loggable.rb +126 -0
  83. data/lib/mongo/logger.rb +132 -0
  84. data/lib/mongo/operation.rb +26 -0
  85. data/lib/mongo/operation/aggregate.rb +100 -0
  86. data/lib/mongo/operation/aggregate/result.rb +84 -0
  87. data/lib/mongo/operation/batchable.rb +103 -0
  88. data/lib/mongo/operation/bulk_delete/result.rb +197 -0
  89. data/lib/mongo/operation/bulk_insert/result.rb +195 -0
  90. data/lib/mongo/operation/bulk_update/result.rb +295 -0
  91. data/lib/mongo/operation/command.rb +62 -0
  92. data/lib/mongo/operation/executable.rb +105 -0
  93. data/lib/mongo/operation/kill_cursors.rb +39 -0
  94. data/lib/mongo/operation/limited.rb +37 -0
  95. data/lib/mongo/operation/list_collections/result.rb +116 -0
  96. data/lib/mongo/operation/list_indexes/result.rb +118 -0
  97. data/lib/mongo/operation/map_reduce.rb +96 -0
  98. data/lib/mongo/operation/map_reduce/result.rb +122 -0
  99. data/lib/mongo/{functional.rb → operation/read.rb} +7 -7
  100. data/lib/mongo/operation/read/collections_info.rb +67 -0
  101. data/lib/mongo/operation/read/get_more.rb +71 -0
  102. data/lib/mongo/operation/read/indexes.rb +68 -0
  103. data/lib/mongo/operation/read/list_collections.rb +75 -0
  104. data/lib/mongo/operation/read/list_indexes.rb +77 -0
  105. data/lib/mongo/operation/read/query.rb +71 -0
  106. data/lib/mongo/operation/read_preferrable.rb +34 -0
  107. data/lib/mongo/operation/result.rb +259 -0
  108. data/lib/mongo/operation/specifiable.rb +380 -0
  109. data/lib/mongo/operation/write.rb +25 -0
  110. data/lib/mongo/operation/write/bulk_delete.rb +158 -0
  111. data/lib/mongo/operation/write/bulk_insert.rb +160 -0
  112. data/lib/mongo/operation/write/bulk_update.rb +167 -0
  113. data/lib/mongo/{connection/socket/socket_util.rb → operation/write/command.rb} +9 -24
  114. data/lib/mongo/operation/write/command/create_user.rb +43 -0
  115. data/lib/mongo/operation/write/command/delete.rb +56 -0
  116. data/lib/mongo/operation/write/command/drop_index.rb +51 -0
  117. data/lib/mongo/operation/write/command/ensure_index.rb +55 -0
  118. data/lib/mongo/operation/write/command/insert.rb +55 -0
  119. data/lib/mongo/operation/write/command/remove_user.rb +42 -0
  120. data/lib/mongo/operation/write/command/update.rb +60 -0
  121. data/lib/mongo/operation/write/command/writable.rb +61 -0
  122. data/lib/mongo/operation/write/create_index.rb +84 -0
  123. data/lib/mongo/operation/write/create_user.rb +75 -0
  124. data/lib/mongo/operation/write/delete.rb +91 -0
  125. data/lib/mongo/operation/write/drop_index.rb +62 -0
  126. data/lib/mongo/operation/write/insert.rb +88 -0
  127. data/lib/mongo/operation/write/remove_user.rb +70 -0
  128. data/lib/mongo/operation/write/update.rb +98 -0
  129. data/lib/mongo/protocol.rb +15 -0
  130. data/lib/mongo/protocol/bit_vector.rb +61 -0
  131. data/lib/mongo/protocol/delete.rb +94 -0
  132. data/lib/mongo/protocol/get_more.rb +99 -0
  133. data/lib/mongo/protocol/insert.rb +99 -0
  134. data/lib/mongo/protocol/kill_cursors.rb +74 -0
  135. data/lib/mongo/protocol/message.rb +252 -0
  136. data/lib/mongo/protocol/query.rb +147 -0
  137. data/lib/mongo/protocol/reply.rb +72 -0
  138. data/lib/mongo/protocol/serializers.rb +180 -0
  139. data/lib/mongo/protocol/update.rb +111 -0
  140. data/lib/mongo/server.rb +163 -0
  141. data/lib/mongo/server/connectable.rb +99 -0
  142. data/lib/mongo/server/connection.rb +133 -0
  143. data/lib/mongo/server/connection_pool.rb +141 -0
  144. data/lib/mongo/server/connection_pool/queue.rb +182 -0
  145. data/lib/mongo/server/context.rb +66 -0
  146. data/lib/mongo/server/description.rb +450 -0
  147. data/lib/mongo/server/description/features.rb +85 -0
  148. data/lib/mongo/server/description/inspector.rb +79 -0
  149. data/lib/mongo/server/description/inspector/primary_elected.rb +58 -0
  150. data/lib/mongo/server/description/inspector/server_added.rb +59 -0
  151. data/lib/mongo/server/description/inspector/server_removed.rb +59 -0
  152. data/lib/mongo/server/monitor.rb +160 -0
  153. data/lib/mongo/server/monitor/connection.rb +88 -0
  154. data/lib/mongo/server_selector.rb +81 -0
  155. data/lib/mongo/server_selector/nearest.rb +94 -0
  156. data/lib/mongo/server_selector/primary.rb +88 -0
  157. data/lib/mongo/server_selector/primary_preferred.rb +94 -0
  158. data/lib/mongo/server_selector/secondary.rb +91 -0
  159. data/lib/mongo/server_selector/secondary_preferred.rb +96 -0
  160. data/lib/mongo/server_selector/selectable.rb +209 -0
  161. data/lib/mongo/socket.rb +179 -0
  162. data/lib/mongo/socket/ssl.rb +108 -0
  163. data/lib/mongo/socket/tcp.rb +69 -0
  164. data/lib/mongo/socket/unix.rb +66 -0
  165. data/lib/mongo/uri.rb +504 -0
  166. data/lib/mongo/version.rb +21 -0
  167. data/lib/mongo/write_concern.rb +99 -0
  168. data/lib/mongo/write_concern/acknowledged.rb +38 -0
  169. data/lib/mongo/write_concern/normalizable.rb +73 -0
  170. data/lib/mongo/write_concern/unacknowledged.rb +43 -0
  171. data/mongo.gemspec +17 -14
  172. data/spec/mongo/address/ipv4_spec.rb +74 -0
  173. data/spec/mongo/address/ipv6_spec.rb +74 -0
  174. data/spec/mongo/address/unix_spec.rb +30 -0
  175. data/spec/mongo/address_spec.rb +206 -0
  176. data/spec/mongo/auth/cr_spec.rb +59 -0
  177. data/spec/mongo/auth/ldap_spec.rb +40 -0
  178. data/spec/mongo/auth/scram/conversation_spec.rb +197 -0
  179. data/spec/mongo/auth/scram_spec.rb +55 -0
  180. data/spec/mongo/auth/user/view_spec.rb +76 -0
  181. data/spec/mongo/auth/user_spec.rb +190 -0
  182. data/spec/mongo/auth/x509_spec.rb +40 -0
  183. data/spec/mongo/auth_spec.rb +65 -0
  184. data/spec/mongo/bulk/bulk_write_spec.rb +175 -0
  185. data/spec/mongo/client_spec.rb +564 -0
  186. data/spec/mongo/cluster/topology/replica_set_spec.rb +101 -0
  187. data/spec/mongo/cluster/topology/sharded_spec.rb +74 -0
  188. data/spec/mongo/cluster/topology/standalone_spec.rb +79 -0
  189. data/spec/mongo/cluster/topology_spec.rb +65 -0
  190. data/spec/mongo/cluster_spec.rb +129 -0
  191. data/spec/mongo/collection/view/aggregation_spec.rb +135 -0
  192. data/spec/mongo/collection/view/explainable_spec.rb +32 -0
  193. data/spec/mongo/collection/view/map_reduce_spec.rb +242 -0
  194. data/spec/mongo/collection/view/readable_spec.rb +603 -0
  195. data/spec/mongo/collection/view/writable_spec.rb +504 -0
  196. data/spec/mongo/collection/view_spec.rb +521 -0
  197. data/spec/mongo/collection_spec.rb +362 -0
  198. data/spec/mongo/cursor_spec.rb +295 -0
  199. data/spec/mongo/database_spec.rb +306 -0
  200. data/spec/mongo/error/parser_spec.rb +119 -0
  201. data/spec/mongo/event/publisher_spec.rb +50 -0
  202. data/spec/mongo/event/subscriber_spec.rb +34 -0
  203. data/spec/mongo/grid/file/chunk_spec.rb +226 -0
  204. data/spec/mongo/grid/file/metadata_spec.rb +69 -0
  205. data/spec/mongo/grid/file_spec.rb +138 -0
  206. data/spec/mongo/grid/fs_spec.rb +129 -0
  207. data/spec/mongo/index/view_spec.rb +226 -0
  208. data/spec/mongo/loggable_spec.rb +62 -0
  209. data/spec/mongo/logger_spec.rb +97 -0
  210. data/spec/mongo/operation/aggregate/result_spec.rb +80 -0
  211. data/spec/mongo/operation/aggregate_spec.rb +135 -0
  212. data/spec/mongo/operation/command_spec.rb +106 -0
  213. data/spec/mongo/operation/kill_cursors_spec.rb +66 -0
  214. data/spec/mongo/operation/limited_spec.rb +50 -0
  215. data/spec/mongo/operation/map_reduce_spec.rb +143 -0
  216. data/spec/mongo/operation/read/collections_info_spec.rb +40 -0
  217. data/spec/mongo/operation/read/get_more_spec.rb +81 -0
  218. data/spec/mongo/operation/read/indexes_spec.rb +31 -0
  219. data/spec/mongo/operation/read/query_spec.rb +84 -0
  220. data/spec/mongo/operation/result_spec.rb +275 -0
  221. data/spec/mongo/operation/specifiable_spec.rb +53 -0
  222. data/spec/mongo/operation/write/bulk_delete_spec.rb +473 -0
  223. data/spec/mongo/operation/write/bulk_insert_spec.rb +466 -0
  224. data/spec/mongo/operation/write/bulk_update_spec.rb +524 -0
  225. data/spec/mongo/operation/write/command/delete_spec.rb +116 -0
  226. data/spec/mongo/operation/write/command/insert_spec.rb +117 -0
  227. data/spec/mongo/operation/write/command/update_spec.rb +123 -0
  228. data/spec/mongo/operation/write/create_user_spec.rb +44 -0
  229. data/spec/mongo/operation/write/delete_spec.rb +178 -0
  230. data/spec/mongo/operation/write/drop_index_spec.rb +51 -0
  231. data/spec/mongo/operation/write/ensure_index_spec.rb +81 -0
  232. data/spec/mongo/operation/write/insert_spec.rb +231 -0
  233. data/spec/mongo/operation/write/remove_user_spec.rb +46 -0
  234. data/spec/mongo/operation/write/response_spec.rb +85 -0
  235. data/spec/mongo/operation/write/update_spec.rb +177 -0
  236. data/spec/mongo/protocol/delete_spec.rb +167 -0
  237. data/spec/mongo/protocol/get_more_spec.rb +146 -0
  238. data/spec/mongo/protocol/insert_spec.rb +161 -0
  239. data/spec/mongo/protocol/kill_cursors_spec.rb +101 -0
  240. data/spec/mongo/protocol/query_spec.rb +285 -0
  241. data/spec/mongo/protocol/reply_spec.rb +157 -0
  242. data/spec/mongo/protocol/update_spec.rb +186 -0
  243. data/spec/mongo/server/connection_pool/queue_spec.rb +170 -0
  244. data/spec/mongo/server/connection_pool_spec.rb +120 -0
  245. data/spec/mongo/server/connection_spec.rb +289 -0
  246. data/spec/mongo/server/description/features_spec.rb +138 -0
  247. data/spec/mongo/server/description/inspector/primary_elected_spec.rb +94 -0
  248. data/spec/mongo/server/description/inspector/server_added_spec.rb +92 -0
  249. data/spec/mongo/server/description/inspector/server_removed_spec.rb +95 -0
  250. data/spec/mongo/server/description_spec.rb +510 -0
  251. data/spec/mongo/server/monitor_spec.rb +130 -0
  252. data/spec/mongo/server_discovery_and_monitoring_spec.rb +103 -0
  253. data/spec/mongo/server_selection_rtt_spec.rb +104 -0
  254. data/spec/mongo/server_selection_spec.rb +89 -0
  255. data/spec/mongo/server_selector/nearest_spec.rb +250 -0
  256. data/spec/mongo/server_selector/primary_preferred_spec.rb +290 -0
  257. data/spec/mongo/server_selector/primary_spec.rb +114 -0
  258. data/spec/mongo/server_selector/secondary_preferred_spec.rb +252 -0
  259. data/spec/mongo/server_selector/secondary_spec.rb +196 -0
  260. data/spec/mongo/server_selector_spec.rb +101 -0
  261. data/spec/mongo/server_spec.rb +131 -0
  262. data/spec/mongo/uri_spec.rb +517 -0
  263. data/spec/mongo/write_concern/acknowledged_spec.rb +44 -0
  264. data/spec/mongo/write_concern/unacknowledged_spec.rb +15 -0
  265. data/spec/mongo_orchestration_spec.rb +70 -0
  266. data/spec/spec_helper.rb +148 -0
  267. data/spec/support/authorization.rb +245 -0
  268. data/spec/support/helpers.rb +140 -0
  269. data/spec/support/matchers.rb +37 -0
  270. data/spec/support/mongo_orchestration.rb +61 -0
  271. data/spec/support/mongo_orchestration/requestable.rb +109 -0
  272. data/spec/support/mongo_orchestration/standalone.rb +57 -0
  273. data/spec/support/sdam/rs/discover_arbiters.yml +41 -0
  274. data/spec/support/sdam/rs/discover_passives.yml +41 -0
  275. data/spec/support/sdam/rs/discover_primary.yml +40 -0
  276. data/spec/support/sdam/rs/discover_secondary.yml +41 -0
  277. data/spec/support/sdam/rs/discovery.yml +195 -0
  278. data/spec/support/sdam/rs/ghost_discovered.yml +39 -0
  279. data/spec/support/sdam/rs/hosts_differ_from_seeds.yml +34 -0
  280. data/spec/support/sdam/rs/member_reconfig.yml +68 -0
  281. data/spec/support/sdam/rs/member_standalone.yml +60 -0
  282. data/spec/support/sdam/rs/new_primary.yml +74 -0
  283. data/spec/support/sdam/rs/new_primary_wrong_set_name.yml +71 -0
  284. data/spec/support/sdam/rs/non_rs_member.yml +31 -0
  285. data/spec/support/sdam/rs/normalize_case.yml +49 -0
  286. data/spec/support/sdam/rs/primary_becomes_standalone.yml +52 -0
  287. data/spec/support/sdam/rs/primary_changes_set_name.yml +57 -0
  288. data/spec/support/sdam/rs/primary_disconnect.yml +56 -0
  289. data/spec/support/sdam/rs/primary_wrong_set_name.yml +27 -0
  290. data/spec/support/sdam/rs/response_from_removed.yml +63 -0
  291. data/spec/support/sdam/rs/rsother_discovered.yml +41 -0
  292. data/spec/support/sdam/rs/sec_not_auth.yml +49 -0
  293. data/spec/support/sdam/rs/secondary_wrong_set_name.yml +28 -0
  294. data/spec/support/sdam/rs/secondary_wrong_set_name_with_primary.yml +69 -0
  295. data/spec/support/sdam/rs/unexpected_mongos.yml +26 -0
  296. data/spec/support/sdam/rs/wrong_set_name.yml +35 -0
  297. data/spec/support/sdam/sharded/multiple_mongoses.yml +46 -0
  298. data/spec/support/sdam/sharded/non_mongos_removed.yml +41 -0
  299. data/spec/support/sdam/sharded/normalize_uri_case.yml +32 -0
  300. data/spec/support/sdam/single/direct_connection_external_ip.yml +34 -0
  301. data/spec/support/sdam/single/direct_connection_mongos.yml +33 -0
  302. data/spec/support/sdam/single/direct_connection_rsarbiter.yml +35 -0
  303. data/spec/support/sdam/single/direct_connection_rsprimary.yml +34 -0
  304. data/spec/support/sdam/single/direct_connection_rssecondary.yml +35 -0
  305. data/spec/support/sdam/single/direct_connection_slave.yml +32 -0
  306. data/spec/support/sdam/single/direct_connection_standalone.yml +32 -0
  307. data/spec/support/sdam/single/not_ok_response.yml +39 -0
  308. data/spec/support/sdam/single/standalone_removed.yml +32 -0
  309. data/spec/support/sdam/single/unavailable_seed.yml +28 -0
  310. data/spec/support/server_discovery_and_monitoring.rb +167 -0
  311. data/spec/support/server_selection.rb +140 -0
  312. data/spec/support/server_selection/rtt/first_value.yml +4 -0
  313. data/spec/support/server_selection/rtt/first_value_zero.yml +4 -0
  314. data/spec/support/server_selection/rtt/value_test_1.yml +4 -0
  315. data/spec/support/server_selection/rtt/value_test_2.yml +4 -0
  316. data/spec/support/server_selection/rtt/value_test_3.yml +4 -0
  317. data/spec/support/server_selection/rtt/value_test_4.yml +4 -0
  318. data/spec/support/server_selection/rtt/value_test_5.yml +4 -0
  319. data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/Nearest.yml +32 -0
  320. data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/Nearest_non_matching.yml +27 -0
  321. data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/Primary.yml +23 -0
  322. data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/PrimaryPreferred.yml +32 -0
  323. data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/PrimaryPreferred_non_matching.yml +27 -0
  324. data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/Secondary.yml +32 -0
  325. data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/SecondaryPreferred.yml +32 -0
  326. data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/SecondaryPreferred_non_matching.yml +27 -0
  327. data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/Secondary_non_matching.yml +27 -0
  328. data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/Nearest.yml +41 -0
  329. data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/Nearest_non_matching.yml +34 -0
  330. data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/Primary.yml +33 -0
  331. data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/PrimaryPreferred.yml +39 -0
  332. data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/PrimaryPreferred_non_matching.yml +36 -0
  333. data/spec/support/server_selection/selection/Sharded/read/SecondaryPreferred.yml +32 -0
  334. data/spec/support/server_selection/selection/Single/read/SecondaryPreferred.yml +23 -0
  335. data/spec/support/server_selection/selection/Unknown/read/SecondaryPreferred.yml +13 -0
  336. data/spec/support/server_selection_rtt.rb +41 -0
  337. data/spec/support/shared/bulk_write.rb +498 -0
  338. data/spec/support/shared/cursor.rb +38 -0
  339. data/spec/support/shared/operation.rb +77 -0
  340. data/spec/support/shared/protocol.rb +31 -0
  341. data/spec/support/shared/server_selector.rb +111 -0
  342. data/spec/support/shared/socket.rb +82 -0
  343. data/spec/support/travis.rb +14 -0
  344. metadata +523 -189
  345. metadata.gz.sig +0 -0
  346. data/VERSION +0 -1
  347. data/lib/mongo/bulk_write_collection_view.rb +0 -387
  348. data/lib/mongo/collection_writer.rb +0 -364
  349. data/lib/mongo/connection/node.rb +0 -249
  350. data/lib/mongo/connection/pool.rb +0 -340
  351. data/lib/mongo/connection/pool_manager.rb +0 -320
  352. data/lib/mongo/connection/sharding_pool_manager.rb +0 -67
  353. data/lib/mongo/connection/socket/ssl_socket.rb +0 -95
  354. data/lib/mongo/connection/socket/tcp_socket.rb +0 -87
  355. data/lib/mongo/connection/socket/unix_socket.rb +0 -39
  356. data/lib/mongo/db.rb +0 -808
  357. data/lib/mongo/exception.rb +0 -145
  358. data/lib/mongo/functional/authentication.rb +0 -455
  359. data/lib/mongo/functional/logging.rb +0 -85
  360. data/lib/mongo/functional/read_preference.rb +0 -183
  361. data/lib/mongo/functional/scram.rb +0 -556
  362. data/lib/mongo/functional/uri_parser.rb +0 -409
  363. data/lib/mongo/functional/write_concern.rb +0 -66
  364. data/lib/mongo/gridfs/grid.rb +0 -112
  365. data/lib/mongo/gridfs/grid_ext.rb +0 -53
  366. data/lib/mongo/gridfs/grid_file_system.rb +0 -163
  367. data/lib/mongo/gridfs/grid_io.rb +0 -484
  368. data/lib/mongo/legacy.rb +0 -140
  369. data/lib/mongo/mongo_client.rb +0 -697
  370. data/lib/mongo/mongo_replica_set_client.rb +0 -535
  371. data/lib/mongo/mongo_sharded_client.rb +0 -159
  372. data/lib/mongo/networking.rb +0 -372
  373. data/lib/mongo/utils/conversions.rb +0 -110
  374. data/lib/mongo/utils/core_ext.rb +0 -70
  375. data/lib/mongo/utils/server_version.rb +0 -69
  376. data/lib/mongo/utils/support.rb +0 -80
  377. data/test/functional/authentication_test.rb +0 -39
  378. data/test/functional/bulk_api_stress_test.rb +0 -133
  379. data/test/functional/bulk_write_collection_view_test.rb +0 -1198
  380. data/test/functional/client_test.rb +0 -627
  381. data/test/functional/collection_test.rb +0 -2175
  382. data/test/functional/collection_writer_test.rb +0 -83
  383. data/test/functional/conversions_test.rb +0 -163
  384. data/test/functional/cursor_fail_test.rb +0 -57
  385. data/test/functional/cursor_message_test.rb +0 -56
  386. data/test/functional/cursor_test.rb +0 -683
  387. data/test/functional/db_api_test.rb +0 -835
  388. data/test/functional/db_test.rb +0 -348
  389. data/test/functional/grid_file_system_test.rb +0 -285
  390. data/test/functional/grid_io_test.rb +0 -252
  391. data/test/functional/grid_test.rb +0 -273
  392. data/test/functional/pool_test.rb +0 -136
  393. data/test/functional/safe_test.rb +0 -98
  394. data/test/functional/support_test.rb +0 -62
  395. data/test/functional/timeout_test.rb +0 -60
  396. data/test/functional/uri_test.rb +0 -446
  397. data/test/functional/write_concern_test.rb +0 -118
  398. data/test/helpers/general.rb +0 -50
  399. data/test/helpers/test_unit.rb +0 -476
  400. data/test/replica_set/authentication_test.rb +0 -37
  401. data/test/replica_set/basic_test.rb +0 -189
  402. data/test/replica_set/client_test.rb +0 -393
  403. data/test/replica_set/connection_test.rb +0 -138
  404. data/test/replica_set/count_test.rb +0 -66
  405. data/test/replica_set/cursor_test.rb +0 -220
  406. data/test/replica_set/insert_test.rb +0 -157
  407. data/test/replica_set/max_values_test.rb +0 -151
  408. data/test/replica_set/pinning_test.rb +0 -105
  409. data/test/replica_set/query_test.rb +0 -73
  410. data/test/replica_set/read_preference_test.rb +0 -219
  411. data/test/replica_set/refresh_test.rb +0 -211
  412. data/test/replica_set/replication_ack_test.rb +0 -95
  413. data/test/sharded_cluster/basic_test.rb +0 -203
  414. data/test/shared/authentication/basic_auth_shared.rb +0 -260
  415. data/test/shared/authentication/bulk_api_auth_shared.rb +0 -249
  416. data/test/shared/authentication/gssapi_shared.rb +0 -176
  417. data/test/shared/authentication/sasl_plain_shared.rb +0 -96
  418. data/test/shared/authentication/scram_shared.rb +0 -92
  419. data/test/shared/ssl_shared.rb +0 -235
  420. data/test/test_helper.rb +0 -61
  421. data/test/threading/basic_test.rb +0 -120
  422. data/test/tools/mongo_config.rb +0 -708
  423. data/test/tools/mongo_config_test.rb +0 -160
  424. data/test/unit/client_test.rb +0 -381
  425. data/test/unit/collection_test.rb +0 -166
  426. data/test/unit/connection_test.rb +0 -335
  427. data/test/unit/cursor_test.rb +0 -307
  428. data/test/unit/db_test.rb +0 -136
  429. data/test/unit/grid_test.rb +0 -76
  430. data/test/unit/mongo_sharded_client_test.rb +0 -48
  431. data/test/unit/node_test.rb +0 -93
  432. data/test/unit/pool_manager_test.rb +0 -111
  433. data/test/unit/read_pref_test.rb +0 -406
  434. data/test/unit/read_test.rb +0 -159
  435. data/test/unit/safe_test.rb +0 -158
  436. data/test/unit/sharding_pool_manager_test.rb +0 -84
  437. data/test/unit/write_concern_test.rb +0 -175
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 756bee5f8dcecc237006f5ebfe8d4087ae06f855
4
- data.tar.gz: c504ef1e1492dee4ff6e5bdab83fac92cdf54069
3
+ metadata.gz: 4fd709834ca22c23121ccd052a08277d95dee73f
4
+ data.tar.gz: 87ff2b2bde354cf9160909c7d2ea18c6dbf8534e
5
5
  SHA512:
6
- metadata.gz: d87e98fa9b33d9d446128a61efc85e0b7e0c67ebfd58bc2e42758156a4794d2c5aa09ff4dd3a87900b1593213145d813aa663df58d6d1fb11325441214fc29fe
7
- data.tar.gz: 07ec6387420ed99a2308266fa50342de858f0fbac16ee308853f2fe36e633901e61c160b67ad292e1cc25b47135ae19267ec08d14fea3cb8a7e3f3b4fa6d4916
6
+ metadata.gz: b385d02b0e3cf9b60b65051f2c5c417767a722c49f2a4aa90551cd040b64b3871b2ee023a6bc5d3e20855a23d5a162d4ede62028269573231c1e965e67ccf8d2
7
+ data.tar.gz: e3408e4cacf4956b4b06f8a1541eb6e34414469f773892592733f028a7a39f9238d51ad842ca637a01d5cd71a7a798aaf20c70153636a391b3deb902984c1299
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,64 @@
1
+ ## Contributing to the MongoDB Ruby Driver
2
+
3
+ Thank you for your interest in contributing to the MongoDB Ruby driver.
4
+
5
+ We are building this software together and strongly encourage contributions
6
+ from the community that are within the guidelines set forth below.
7
+
8
+ Bug Fixes and New Features
9
+ --------------------------
10
+
11
+ Before starting to write code, look for existing [tickets]
12
+ (https://jira.mongodb.org/browse/RUBY) or [create one]
13
+ (https://jira.mongodb.org/secure/CreateIssue!default.jspa)
14
+ for your bug, issue, or feature request. This helps the community
15
+ avoid working on something that might not be of interest or which
16
+ has already been addressed.
17
+
18
+ Environment
19
+ -----------
20
+
21
+ We highly suggest using [RVM](https://rvm.io/) or [rbenv]
22
+ (https://github.com/sstephenson/rbenv) to set up Ruby development and
23
+ testing environments. In this way, moving between and testing code for
24
+ alternate Ruby versions (besides the one possibly included with your
25
+ system) is simple. This practice is essential for ensuring the quality
26
+ of the driver.
27
+
28
+ Pull Requests
29
+ -------------
30
+
31
+ Pull requests should be made against the master (development)
32
+ branch and include relevant tests, if applicable. The driver follows
33
+ the Git-Flow branching model where the traditional master branch is
34
+ known as release and the master (default) branch is considered under
35
+ development.
36
+
37
+ Tests should pass under all Ruby interpreters which the MongoDB Ruby
38
+ driver currently supports (1.8.7, 1.9.3, JRuby 1.6.x and 1.7.x) and will be
39
+ automatically tested.
40
+
41
+ The results of pull request testing will be appended to the request.
42
+ If any tests do not pass, or relavant tests are not included the pull
43
+ request will not be considered.
44
+
45
+ Clusters and Replica Sets
46
+ -------------------------
47
+
48
+ If your bug fix or enhancement deals with Cluster or Replica Set
49
+ code, please run all relevant tests for those code subsets before
50
+ issuing the request.
51
+
52
+ * `rake test:sharded_cluster` for sharded clusters
53
+ * `rake test:replica_set` for replica sets
54
+
55
+ Cluster and Replica Set testing is currently **not** automatically
56
+ performed so it is important they are run in a thorough fashion under
57
+ all supported interpreters before a pull request is made.
58
+
59
+ Talk To Us
60
+ ----------
61
+
62
+ We love to hear from you. If you want to work on something or have
63
+ questions / complaints please reach out to us by creating a [question]
64
+ (https://jira.mongodb.org/secure/CreateIssue.jspa?pid=10005&issuetype=6).
data/LICENSE CHANGED
@@ -175,7 +175,7 @@
175
175
 
176
176
  END OF TERMS AND CONDITIONS
177
177
 
178
- Copyright (C) 2008-2013 MongoDB, Inc.
178
+ Copyright (C) 2009-2015 MongoDB, Inc.
179
179
 
180
180
  Licensed under the Apache License, Version 2.0 (the "License");
181
181
  you may not use this file except in compliance with the License.
data/README.md CHANGED
@@ -2,103 +2,23 @@ MongoDB Ruby Driver [![Build Status][travis-img]][travis-url] [![Code Climate][c
2
2
  -----
3
3
  The officially supported Ruby driver for [MongoDB](http://www.mongodb.org).
4
4
 
5
- Installation
6
- -----
7
-
8
- **Gem Installation**<br>
9
- The Ruby driver is released and distributed through RubyGems and it can be installed with the following command:
10
-
11
- ```bash
12
- gem install mongo
13
- ```
14
-
15
- For a significant performance boost, you'll want to install the C-extension:
16
-
17
- ```bash
18
- gem install bson_ext
19
- ```
20
-
21
- **Github Installation**<br>
22
- For development and test environments (not recommended for production) you can also install the Ruby driver directly from source:
23
-
24
- ```bash
25
- # clone the repository
26
- git clone https://github.com/mongodb/mongo-ruby-driver.git
27
- cd mongo-ruby-driver
28
-
29
- # checkout a specific version by tag (optional)
30
- git checkout 1.x.x
31
-
32
- # install all development dependencies
33
- gem install bundler
34
- bundle install
35
-
36
- # install the ruby driver
37
- rake install
38
- ```
39
-
40
- To be able to use the driver with Kerberos authentication enabled, install the
41
- `mongo_kerberos` gem and add it instead of mongo to your application:
42
-
43
- ```bash
44
- gem install mongo_kerberos
45
- ```
46
-
47
- ```ruby
48
- require 'mongo_kerberos'
49
- ```
50
-
51
- Usage
52
- -----
53
- Here is a quick example of basic usage for the Ruby driver:
54
-
55
- ```ruby
56
- require 'mongo'
57
- include Mongo
58
-
59
- # connecting to the database
60
- client = MongoClient.new # defaults to localhost:27017
61
- db = client['example-db']
62
- coll = db['example-collection']
5
+ > **Note: You are viewing the 2.x version of the MongoDB Ruby driver which is currently in beta and under heavy development. To view the current stable version of driver, please use the [1.x-stable](https://github.com/mongodb/mongo-ruby-driver/tree/1.x-stable) branch.**
63
6
 
64
- # inserting documents
65
- 10.times { |i| coll.insert({ :count => i+1 }) }
66
-
67
- # finding documents
68
- puts "There are #{coll.count} total documents. Here they are:"
69
- coll.find.each { |doc| puts doc.inspect }
70
-
71
- # updating documents
72
- coll.update({ :count => 5 }, { :count => 'foobar' })
73
-
74
- # removing documents
75
- coll.remove({ :count => 8 })
76
- coll.remove
77
- ```
78
-
79
- Wiki - Tutorials & Examples
7
+ Documentation
80
8
  -----
81
- For many more usage examples and a full tutorial, please visit our [wiki](https://github.com/mongodb/mongo-ruby-driver/wiki).<br>
82
9
 
83
- API Reference Documentation
84
- -----
85
- For API reference documentation, please visit [here](http://api.mongodb.org/ruby).
10
+ Documentation for the 2.x series is currently a work in progress, but that work can
11
+ be seen in the meantime [here](https://github.com/durran/docs-ecosystem/blob/RUBY-684/source/tutorial/ruby-driver-tutorial.txt).
86
12
 
87
- Compatibility
88
- -----
89
- The MongoDB Ruby driver requires Ruby 1.8.7 or greater and is regularly tested against the platforms and environments listed below.
90
-
91
- Ruby Platforms | Operating Systems | Architectures
92
- -------------- | ----------------- | -------------
93
- MRI 1.8.7, 1.9.3, 2.0.0<br>JRuby 1.7.x | Windows<br>Linux<br>OS X | x86<br>x64<br>ARM
13
+ API docs can be found [here](http://api.mongodb.org/ruby/).
94
14
 
95
15
  Support & Feedback
96
16
  -----
97
17
 
98
- **Support Channels**
99
-
100
- For issues, questions or feedback related to the Ruby driver, please look into our [support channels](http://www.mongodb.org/about/support).
101
- Please do not email any of the Ruby developers directly with issues or questions. You'll get a quicker answer on the [mongodb-user list](http://groups.google.com/group/mongodb-user) Google Group.
18
+ For issues, questions or feedback related to the Ruby driver, please look into
19
+ our [support channels](http://www.mongodb.org/about/support). Please
20
+ do not email any of the Ruby developers directly with issues or
21
+ questions - you're more likely to get an answer quickly on the [mongodb-user list](http://groups.google.com/group/mongodb-user) on Google Groups.
102
22
 
103
23
  Bugs & Feature Requests
104
24
  -----
@@ -111,45 +31,23 @@ Do you have a bug to report or a feature request to make?
111
31
 
112
32
  When reporting an issue, please keep in mind that all information in JIRA for all driver projects (ex. RUBY, CSHARP, JAVA) and the Core Server (ex. SERVER) project is **PUBLICLY** visible.
113
33
 
114
- **HOW TO ASK FOR HELP**
115
-
116
- Providing enough information so we can reproduce the issue immediately will reduce roundtrip communications and get you a useful response as quickly as possible.
117
- That said, please provide the following information when logging an issue:
34
+ **PLEASE DO**
118
35
 
119
- 1. Environment
120
- 2. Ruby version, including patch-level
121
- 3. MongoDB version
122
- 4. A test case or code snippets
123
- 5. Stack traces and log data, keeping in mind that this info is public
36
+ * Provide as much information as possible about the issue.
37
+ * Provide detailed steps for reproducing the issue.
38
+ * Provide any applicable code snippets, stack traces and log data.
39
+ * Specify version information for the driver and MongoDB.
124
40
 
125
41
  **PLEASE DO NOT**
126
42
 
127
43
  * Provide any sensitive data or server logs.
128
44
  * Report potential security issues publicly (see 'Security Issues').
129
45
 
130
- **EXAMPLE BUG REPORT**
131
-
132
- Example taken from [RUBY-775](https://jira.mongodb.org/browse/RUBY-775)
133
-
134
- ```
135
- There appears to be a recursive locking condition in the replica set connection pooling.
136
-
137
- Environment: AWS Linux 3.10.37-47.135.amzn1.x86_64 / jruby-1.7.12 / JDK java-1.7.0-openjdk-1.7.0.55-2.4.7.1.40.amzn1.x86_64
138
-
139
- Component: Connection Pooling / Replica set
140
-
141
- Here is a stack trace:
142
- https://gist.githubusercontent.com/cheald/5ed01172c5b2c9943c87/raw/63075158dac4c78c1775cac8bf84ba3b6537bc1e/gistfile1.txt
143
-
144
- The original lock occurs [here](https://github.com/mongodb/mongo-ruby-driver/blob/1.x-stable/lib/mongo/connection/pool_manager.rb#L60)
145
-
146
- and then the process of reconnecting ends up attempting to resynchronize the same lock [here](https://github.com/mongodb/mongo-ruby-driver/blob/1.x-stable/lib/mongo/connection/pool_manager.rb#L150)
147
- ```
148
-
149
46
  Security Issues
150
47
  -----
151
48
 
152
- If you’ve identified a potential security related issue in a driver or any other MongoDB project, please report it by following the [instructions here](http://docs.mongodb.org/manual/tutorial/create-a-vulnerability-report).
49
+ If you’ve identified a potential security related issue in a driver or any other
50
+ MongoDB project, please report it by following the [instructions here](http://docs.mongodb.org/manual/tutorial/create-a-vulnerability-report).
153
51
 
154
52
  Release History
155
53
  -----
@@ -159,7 +57,7 @@ Full release notes and release history are available [here](https://github.com/m
159
57
  License
160
58
  -----
161
59
 
162
- Copyright (C) 2009-2013 MongoDB, Inc.
60
+ Copyright (C) 2009-2015 MongoDB, Inc.
163
61
 
164
62
  Licensed under the Apache License, Version 2.0 (the "License");
165
63
  you may not use this file except in compliance with the License.
@@ -175,9 +73,9 @@ License
175
73
 
176
74
  [rubygems-img]: https://badge.fury.io/rb/mongo.png
177
75
  [rubygems-url]: http://badge.fury.io/rb/mongo
178
- [travis-img]: https://secure.travis-ci.org/mongodb/mongo-ruby-driver.png?branch=1.x-stable
179
- [travis-url]: http://travis-ci.org/mongodb/mongo-ruby-driver?branch=1.x-stable
180
- [codeclimate-img]: https://codeclimate.com/github/mongodb/mongo-ruby-driver.png?branch=1.x-stable
181
- [codeclimate-url]: https://codeclimate.com/github/mongodb/mongo-ruby-driver?branch=1.x-stable
182
- [coveralls-img]: https://coveralls.io/repos/mongodb/mongo-ruby-driver/badge.png?branch=1.x-stable
183
- [coveralls-url]: https://coveralls.io/r/mongodb/mongo-ruby-driver?branch=1.x-stable
76
+ [travis-img]: https://secure.travis-ci.org/mongodb/mongo-ruby-driver.png?branch=master
77
+ [travis-url]: http://travis-ci.org/mongodb/mongo-ruby-driver?branch=master
78
+ [codeclimate-img]: https://codeclimate.com/github/mongodb/mongo-ruby-driver.png?branch=master
79
+ [codeclimate-url]: https://codeclimate.com/github/mongodb/mongo-ruby-driver?branch=master
80
+ [coveralls-img]: https://coveralls.io/repos/mongodb/mongo-ruby-driver/badge.png?branch=master
81
+ [coveralls-url]: https://coveralls.io/r/mongodb/mongo-ruby-driver?branch=master
data/Rakefile CHANGED
@@ -1,31 +1,36 @@
1
- # Copyright (C) 2009-2013 MongoDB, Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
1
+ #!/usr/bin/env ruby
14
2
 
15
3
  require 'rubygems'
16
4
 
17
5
  begin
18
6
  require 'bundler'
7
+ require 'bundler/gem_tasks'
19
8
  rescue LoadError
20
- raise '[FAIL] Bundler not found! Install it with `gem install bundler && bundle`.'
9
+ raise '[FAIL] Bundler not found! Install it with ' +
10
+ '`gem install bundler; bundle install`.'
21
11
  end
22
12
 
23
- rake_tasks = Dir.glob(File.join('tasks', '**', '*.rake')).sort
24
- if ENV.keys.any? { |k| k.end_with?('_CI') }
25
- Bundler.require(:default, :testing)
26
- rake_tasks.reject! { |r| r =~ /deploy/ }
27
- else
28
- Bundler.require(:default, :testing, :deploy, :development)
13
+ default_groups = [:default, :testing]
14
+ Bundler.require(*default_groups)
15
+
16
+ require 'rspec/core/rake_task'
17
+
18
+ RSpec::Core::RakeTask.new(:spec)
19
+ task :default => :spec
20
+
21
+ namespace :spec do
22
+ if RUBY_VERSION > '1.9' && RUBY_VERSION < '2.2'
23
+ require 'coveralls/rake/task'
24
+ Coveralls::RakeTask.new
25
+ task :ci => [:spec, 'coveralls:push']
26
+ else
27
+ task :ci => [:spec]
28
+ end
29
29
  end
30
30
 
31
- rake_tasks.each { |rake| load File.expand_path(rake) }
31
+ task :release => :spec do
32
+ system "git tag -a v#{Mongo::VERSION} -m 'Tagging release: #{Mongo::VERSION}'"
33
+ system "git push --tags"
34
+ system "gem push mongo-#{Mongo::VERSION}.gem"
35
+ system "rm mongo-#{Mongo::VERSION}.gem"
36
+ end
data/bin/mongo_console CHANGED
@@ -1,43 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- # Copyright (C) 2009-2013 MongoDB, Inc.
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
-
17
- org_argv = ARGV.dup
18
- ARGV.clear
19
-
20
- $LOAD_PATH[0,0] = File.join(File.dirname(__FILE__), '..', 'lib')
21
-
3
+ $LOAD_PATH[0, 0] = File.join(File.dirname(__FILE__), '..', 'lib')
4
+ require 'pry'
22
5
  require 'mongo'
23
- include Mongo
24
6
 
25
- host = org_argv[0] || ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost'
26
- port = org_argv[1] || ENV['MONGO_RUBY_DRIVER_PORT'] || MongoClient::DEFAULT_PORT
27
- dbnm = org_argv[2] || ENV['MONGO_RUBY_DRIVER_DB'] || 'ruby-mongo-console'
28
-
29
- puts "Connecting to #{host}:#{port} (CLIENT) on with database #{dbnm} (DB)"
30
- CLIENT = MongoClient.new(host, port)
31
- DB = CLIENT.db(dbnm)
32
-
33
- # try pry if available, fall back to irb
34
- begin
35
- require 'pry'
36
- CONSOLE_CLASS = Pry
37
- rescue LoadError
38
- require 'irb'
39
- CONSOLE_CLASS = IRB
40
- end
7
+ # include the mongo namespace
8
+ include Mongo
41
9
 
42
- puts "Starting #{CONSOLE_CLASS.name} session..."
43
- CONSOLE_CLASS.start(__FILE__)
10
+ Pry.config.prompt_name = 'mongo'
11
+ Pry.start
data/lib/mongo.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2009-2013 MongoDB, Inc.
1
+ # Copyright (C) 2014-2015 MongoDB, Inc.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -12,87 +12,28 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- module Mongo
16
- ASCENDING = 1
17
- DESCENDING = -1
18
- GEO2D = '2d'
19
- GEO2DSPHERE = '2dsphere'
20
- GEOHAYSTACK = 'geoHaystack'
21
- TEXT = 'text'
22
- HASHED = 'hashed'
23
-
24
- INDEX_TYPES = {
25
- 'ASCENDING' => ASCENDING,
26
- 'DESCENDING' => DESCENDING,
27
- 'GEO2D' => GEO2D,
28
- 'GEO2DSPHERE' => GEO2DSPHERE,
29
- 'GEOHAYSTACK' => GEOHAYSTACK,
30
- 'TEXT' => TEXT,
31
- 'HASHED' => HASHED
32
- }
33
-
34
- DEFAULT_MAX_BSON_SIZE = 4 * 1024 * 1024
35
- MESSAGE_SIZE_FACTOR = 2
36
-
37
- module Constants
38
- OP_REPLY = 1
39
- OP_MSG = 1000
40
- OP_UPDATE = 2001
41
- OP_INSERT = 2002
42
- OP_QUERY = 2004
43
- OP_GET_MORE = 2005
44
- OP_DELETE = 2006
45
- OP_KILL_CURSORS = 2007
46
-
47
- OP_QUERY_TAILABLE = 2 ** 1
48
- OP_QUERY_SLAVE_OK = 2 ** 2
49
- OP_QUERY_OPLOG_REPLAY = 2 ** 3
50
- OP_QUERY_NO_CURSOR_TIMEOUT = 2 ** 4
51
- OP_QUERY_AWAIT_DATA = 2 ** 5
52
- OP_QUERY_EXHAUST = 2 ** 6
53
- OP_QUERY_PARTIAL = 2 ** 7
54
-
55
- REPLY_CURSOR_NOT_FOUND = 2 ** 0
56
- REPLY_QUERY_FAILURE = 2 ** 1
57
- REPLY_SHARD_CONFIG_STALE = 2 ** 2
58
- REPLY_AWAIT_CAPABLE = 2 ** 3
59
- end
60
-
61
- module ErrorCode # MongoDB Core Server src/mongo/base/error_codes.err
62
- BAD_VALUE = 2
63
- UNKNOWN_ERROR = 8
64
- INVALID_BSON = 22
65
- WRITE_CONCERN_FAILED = 64
66
- MULTIPLE_ERRORS_OCCURRED = 65
67
- UNAUTHORIZED = 13
68
-
69
- # mongod/s 2.6 and above return code 59 when a command doesn't exist.
70
- # mongod versions previous to 2.6 and mongos 2.4.x return no error code
71
- # when a command does exist.
72
- # mongos versions previous to 2.4.0 return code 13390 when a command
73
- # does not exist.
74
- COMMAND_NOT_FOUND_CODES = [nil, 59, 13390]
75
- end
76
- end
77
-
15
+ require 'forwardable'
78
16
  require 'bson'
79
-
80
- require 'set'
81
- require 'thread'
82
- require 'monitor'
83
-
84
- require 'mongo/utils'
85
- require 'mongo/exception'
86
- require 'mongo/functional'
87
- require 'mongo/connection'
88
- require 'mongo/collection_writer'
17
+ require 'openssl'
18
+ require 'mongo/loggable'
19
+ require 'mongo/logger'
20
+ require 'mongo/error'
21
+ require 'mongo/event'
22
+ require 'mongo/address'
23
+ require 'mongo/auth'
24
+ require 'mongo/bulk'
25
+ require 'mongo/client'
26
+ require 'mongo/cluster'
89
27
  require 'mongo/collection'
90
- require 'mongo/bulk_write_collection_view'
91
28
  require 'mongo/cursor'
92
- require 'mongo/db'
93
- require 'mongo/gridfs'
94
- require 'mongo/networking'
95
- require 'mongo/mongo_client'
96
- require 'mongo/mongo_replica_set_client'
97
- require 'mongo/mongo_sharded_client'
98
- require 'mongo/legacy'
29
+ require 'mongo/database'
30
+ require 'mongo/grid'
31
+ require 'mongo/index'
32
+ require 'mongo/operation'
33
+ require 'mongo/protocol'
34
+ require 'mongo/server'
35
+ require 'mongo/server_selector'
36
+ require 'mongo/socket'
37
+ require 'mongo/uri'
38
+ require 'mongo/version'
39
+ require 'mongo/write_concern'