mongo 2.0.6 → 2.1.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 (317) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +5 -2
  3. data/lib/mongo/address/ipv4.rb +6 -1
  4. data/lib/mongo/address/unix.rb +2 -2
  5. data/lib/mongo/address.rb +18 -10
  6. data/lib/mongo/auth/cr/conversation.rb +1 -1
  7. data/lib/mongo/auth/ldap/conversation.rb +7 -3
  8. data/lib/mongo/auth/scram/conversation.rb +9 -3
  9. data/lib/mongo/auth/user/view.rb +23 -2
  10. data/lib/mongo/auth/x509/conversation.rb +1 -1
  11. data/lib/mongo/bulk_write/combineable.rb +51 -0
  12. data/lib/mongo/bulk_write/ordered_combiner.rb +55 -0
  13. data/lib/mongo/bulk_write/result.rb +191 -0
  14. data/lib/mongo/bulk_write/result_combiner.rb +117 -0
  15. data/lib/mongo/bulk_write/transformable.rb +132 -0
  16. data/lib/mongo/bulk_write/unordered_combiner.rb +52 -0
  17. data/lib/mongo/bulk_write/validatable.rb +62 -0
  18. data/lib/mongo/bulk_write.rb +159 -23
  19. data/lib/mongo/client.rb +52 -16
  20. data/lib/mongo/cluster/topology/replica_set.rb +27 -9
  21. data/lib/mongo/cluster/topology/sharded.rb +1 -1
  22. data/lib/mongo/cluster/topology/unknown.rb +5 -2
  23. data/lib/mongo/cluster.rb +42 -7
  24. data/lib/mongo/collection/view/aggregation.rb +48 -9
  25. data/lib/mongo/collection/view/immutable.rb +6 -6
  26. data/lib/mongo/collection/view/iterable.rb +18 -4
  27. data/lib/mongo/collection/view/map_reduce.rb +58 -17
  28. data/lib/mongo/collection/view/readable.rb +173 -42
  29. data/lib/mongo/collection/view/writable.rb +37 -23
  30. data/lib/mongo/collection/view.rb +2 -2
  31. data/lib/mongo/collection.rb +370 -33
  32. data/lib/mongo/cursor.rb +15 -3
  33. data/lib/mongo/database/view.rb +5 -4
  34. data/lib/mongo/database.rb +14 -4
  35. data/lib/mongo/dbref.rb +113 -0
  36. data/lib/mongo/error/closed_stream.rb +34 -0
  37. data/lib/mongo/error/extra_file_chunk.rb +34 -0
  38. data/lib/mongo/error/{invalid_uri_option.rb → file_not_found.rb} +11 -12
  39. data/lib/mongo/error/invalid_file.rb +2 -2
  40. data/lib/mongo/error/invalid_file_revision.rb +37 -0
  41. data/lib/mongo/error/invalid_uri.rb +5 -4
  42. data/lib/mongo/error/missing_file_chunk.rb +38 -0
  43. data/lib/mongo/error/operation_failure.rb +1 -1
  44. data/lib/mongo/error/parser.rb +1 -1
  45. data/lib/mongo/error/unchangeable_collection_option.rb +38 -0
  46. data/lib/mongo/error/unexpected_chunk_length.rb +39 -0
  47. data/lib/mongo/error.rb +13 -2
  48. data/lib/mongo/event/description_changed.rb +1 -1
  49. data/lib/mongo/grid/file/chunk.rb +6 -6
  50. data/lib/mongo/grid/file/{metadata.rb → info.rb} +41 -39
  51. data/lib/mongo/grid/file.rb +13 -10
  52. data/lib/mongo/grid/fs_bucket.rb +448 -0
  53. data/lib/mongo/grid/stream/read.rb +208 -0
  54. data/lib/mongo/grid/stream/write.rb +187 -0
  55. data/lib/mongo/grid/stream.rb +64 -0
  56. data/lib/mongo/grid.rb +2 -1
  57. data/lib/mongo/index/view.rb +3 -3
  58. data/lib/mongo/index.rb +5 -0
  59. data/lib/mongo/loggable.rb +34 -57
  60. data/lib/mongo/logger.rb +16 -78
  61. data/lib/mongo/monitoring/command_log_subscriber.rb +112 -0
  62. data/lib/mongo/monitoring/event/command_failed.rb +96 -0
  63. data/lib/mongo/monitoring/event/command_started.rb +89 -0
  64. data/lib/mongo/monitoring/event/command_succeeded.rb +118 -0
  65. data/lib/mongo/monitoring/event/secure.rb +58 -0
  66. data/lib/mongo/monitoring/event.rb +18 -0
  67. data/lib/mongo/monitoring/publishable.rb +106 -0
  68. data/lib/mongo/monitoring.rb +195 -0
  69. data/lib/mongo/operation/{aggregate.rb → commands/aggregate.rb} +3 -41
  70. data/lib/mongo/operation/commands/collections_info/result.rb +39 -0
  71. data/lib/mongo/operation/commands/collections_info.rb +68 -0
  72. data/lib/mongo/operation/{command.rb → commands/command.rb} +2 -18
  73. data/lib/mongo/operation/commands/indexes.rb +70 -0
  74. data/lib/mongo/operation/commands/list_collections/result.rb +112 -0
  75. data/lib/mongo/operation/commands/list_collections.rb +54 -0
  76. data/lib/mongo/operation/commands/list_indexes/result.rb +116 -0
  77. data/lib/mongo/operation/commands/list_indexes.rb +56 -0
  78. data/lib/mongo/operation/{map_reduce → commands/map_reduce}/result.rb +1 -1
  79. data/lib/mongo/operation/{map_reduce.rb → commands/map_reduce.rb} +3 -41
  80. data/lib/mongo/operation/commands/parallel_scan/result.rb +72 -0
  81. data/lib/mongo/operation/commands/parallel_scan.rb +56 -0
  82. data/lib/mongo/operation/commands/user_query.rb +69 -0
  83. data/lib/mongo/{bulk_write/ordered_bulk_write.rb → operation/commands/users_info/result.rb} +18 -30
  84. data/lib/mongo/operation/commands/users_info.rb +53 -0
  85. data/lib/mongo/operation/commands.rb +24 -0
  86. data/lib/mongo/operation/executable.rb +4 -68
  87. data/lib/mongo/operation/kill_cursors.rb +3 -3
  88. data/lib/mongo/operation/read/get_more.rb +2 -22
  89. data/lib/mongo/{bulk_write/unordered_bulk_write.rb → operation/read/query/result.rb} +20 -26
  90. data/lib/mongo/operation/read/query.rb +4 -21
  91. data/lib/mongo/operation/read.rb +0 -4
  92. data/lib/mongo/operation/{read_preferrable.rb → read_preference.rb} +3 -2
  93. data/lib/mongo/operation/result.rb +13 -1
  94. data/lib/mongo/operation/specifiable.rb +42 -0
  95. data/lib/mongo/operation/write/bulk/bulkable.rb +82 -0
  96. data/lib/mongo/operation/write/bulk/delete/result.rb +74 -0
  97. data/lib/mongo/operation/write/bulk/delete.rb +71 -0
  98. data/lib/mongo/operation/write/bulk/insert/result.rb +129 -0
  99. data/lib/mongo/operation/write/bulk/insert.rb +96 -0
  100. data/lib/mongo/operation/write/bulk/legacy_mergable.rb +87 -0
  101. data/lib/mongo/operation/write/bulk/mergable.rb +71 -0
  102. data/lib/mongo/operation/write/bulk/update/result.rb +174 -0
  103. data/lib/mongo/operation/write/bulk/update.rb +81 -0
  104. data/lib/mongo/operation/write/bulk.rb +6 -3
  105. data/lib/mongo/operation/write/command/create_index.rb +0 -1
  106. data/lib/mongo/operation/write/command/create_user.rb +0 -1
  107. data/lib/mongo/operation/write/command/delete.rb +0 -1
  108. data/lib/mongo/operation/write/command/drop_index.rb +0 -1
  109. data/lib/mongo/operation/write/command/insert.rb +0 -1
  110. data/lib/mongo/operation/write/command/remove_user.rb +0 -1
  111. data/lib/mongo/operation/write/command/update.rb +0 -1
  112. data/lib/mongo/operation/write/command/update_user.rb +0 -1
  113. data/lib/mongo/operation/write/command/writable.rb +13 -18
  114. data/lib/mongo/operation/write/create_index.rb +4 -27
  115. data/lib/mongo/operation/write/create_user.rb +4 -30
  116. data/lib/mongo/operation/write/delete.rb +6 -29
  117. data/lib/mongo/operation/write/drop_index.rb +3 -3
  118. data/lib/mongo/operation/write/gle.rb +48 -0
  119. data/lib/mongo/operation/write/idable.rb +5 -0
  120. data/lib/mongo/operation/write/insert.rb +2 -24
  121. data/lib/mongo/operation/write/remove_user.rb +4 -27
  122. data/lib/mongo/operation/write/update.rb +13 -36
  123. data/lib/mongo/operation/write/update_user.rb +4 -30
  124. data/lib/mongo/operation/write/write_command_enabled.rb +53 -0
  125. data/lib/mongo/operation/write.rb +2 -0
  126. data/lib/mongo/operation.rb +32 -4
  127. data/lib/mongo/options/mapper.rb +4 -2
  128. data/lib/mongo/options/redacted.rb +156 -0
  129. data/lib/mongo/options.rb +1 -0
  130. data/lib/mongo/protocol/delete.rb +75 -15
  131. data/lib/mongo/protocol/get_more.rb +65 -13
  132. data/lib/mongo/protocol/insert.rb +85 -13
  133. data/lib/mongo/protocol/kill_cursors.rb +59 -14
  134. data/lib/mongo/protocol/message.rb +12 -12
  135. data/lib/mongo/protocol/query.rb +163 -37
  136. data/lib/mongo/protocol/reply.rb +103 -0
  137. data/lib/mongo/protocol/serializers.rb +1 -1
  138. data/lib/mongo/protocol/update.rb +82 -14
  139. data/lib/mongo/retryable.rb +83 -0
  140. data/lib/mongo/server/connectable.rb +21 -25
  141. data/lib/mongo/server/connection.rb +75 -4
  142. data/lib/mongo/server/connection_pool/queue.rb +15 -0
  143. data/lib/mongo/server/connection_pool.rb +12 -0
  144. data/lib/mongo/server/description/features.rb +2 -1
  145. data/lib/mongo/server/description.rb +52 -1
  146. data/lib/mongo/server/monitor/connection.rb +26 -2
  147. data/lib/mongo/server/monitor.rb +19 -3
  148. data/lib/mongo/server.rb +39 -5
  149. data/lib/mongo/server_selector/selectable.rb +40 -31
  150. data/lib/mongo/server_selector.rb +19 -10
  151. data/lib/mongo/socket/ssl.rb +28 -16
  152. data/lib/mongo/socket/tcp.rb +3 -3
  153. data/lib/mongo/socket/unix.rb +5 -8
  154. data/lib/mongo/socket.rb +11 -4
  155. data/lib/mongo/uri.rb +248 -137
  156. data/lib/mongo/version.rb +1 -1
  157. data/lib/mongo.rb +5 -3
  158. data/spec/mongo/address/unix_spec.rb +1 -1
  159. data/spec/mongo/address_spec.rb +25 -0
  160. data/spec/mongo/auth/cr_spec.rb +9 -1
  161. data/spec/mongo/auth/ldap/conversation_spec.rb +43 -0
  162. data/spec/mongo/auth/ldap_spec.rb +9 -1
  163. data/spec/mongo/auth/scram_spec.rb +9 -1
  164. data/spec/mongo/auth/user/view_spec.rb +26 -1
  165. data/spec/mongo/auth/x509_spec.rb +9 -1
  166. data/spec/mongo/bulk_write/ordered_combiner_spec.rb +271 -0
  167. data/spec/mongo/bulk_write/unordered_combiner_spec.rb +239 -0
  168. data/spec/mongo/bulk_write_spec.rb +428 -0
  169. data/spec/mongo/client_spec.rb +167 -17
  170. data/spec/mongo/cluster/topology/replica_set_spec.rb +18 -9
  171. data/spec/mongo/cluster/topology/sharded_spec.rb +11 -3
  172. data/spec/mongo/cluster/topology/single_spec.rb +12 -4
  173. data/spec/mongo/cluster_spec.rb +55 -10
  174. data/spec/mongo/collection/view/aggregation_spec.rb +188 -1
  175. data/spec/mongo/collection/view/explainable_spec.rb +1 -1
  176. data/spec/mongo/collection/view/immutable_spec.rb +103 -0
  177. data/spec/mongo/collection/view/map_reduce_spec.rb +99 -4
  178. data/spec/mongo/collection/view/readable_spec.rb +238 -6
  179. data/spec/mongo/collection/view/writable_spec.rb +4 -4
  180. data/spec/mongo/collection/view_spec.rb +459 -71
  181. data/spec/mongo/collection_spec.rb +1291 -9
  182. data/spec/mongo/command_monitoring_spec.rb +51 -0
  183. data/spec/mongo/connection_string_spec.rb +115 -0
  184. data/spec/mongo/crud_spec.rb +2 -2
  185. data/spec/mongo/cursor_spec.rb +3 -3
  186. data/spec/mongo/database_spec.rb +47 -11
  187. data/spec/mongo/dbref_spec.rb +149 -0
  188. data/spec/mongo/grid/file/chunk_spec.rb +5 -5
  189. data/spec/mongo/grid/file/{metadata_spec.rb → info_spec.rb} +29 -17
  190. data/spec/mongo/grid/file_spec.rb +8 -8
  191. data/spec/mongo/grid/fs_bucket_spec.rb +1020 -0
  192. data/spec/mongo/grid/stream/read_spec.rb +275 -0
  193. data/spec/mongo/grid/stream/write_spec.rb +440 -0
  194. data/spec/mongo/grid/stream_spec.rb +48 -0
  195. data/spec/mongo/gridfs_spec.rb +50 -0
  196. data/spec/mongo/logger_spec.rb +0 -40
  197. data/spec/mongo/monitoring/command_log_subscriber_spec.rb +76 -0
  198. data/spec/mongo/monitoring/event/command_started_spec.rb +26 -0
  199. data/spec/mongo/monitoring/event/command_succeeded_spec.rb +26 -0
  200. data/spec/mongo/monitoring/event/secure_spec.rb +57 -0
  201. data/spec/mongo/monitoring_spec.rb +168 -0
  202. data/spec/mongo/operation/commands/aggregate_spec.rb +69 -0
  203. data/spec/mongo/operation/{read → commands}/collections_info_spec.rb +1 -1
  204. data/spec/mongo/operation/{command_spec.rb → commands/command_spec.rb} +0 -18
  205. data/spec/mongo/operation/{read → commands}/indexes_spec.rb +1 -1
  206. data/spec/mongo/operation/{map_reduce_spec.rb → commands/map_reduce_spec.rb} +1 -19
  207. data/spec/mongo/operation/kill_cursors_spec.rb +1 -17
  208. data/spec/mongo/operation/read/get_more_spec.rb +0 -16
  209. data/spec/mongo/operation/read/query_spec.rb +19 -16
  210. data/spec/mongo/operation/{read_preferrable_spec.rb → read_preference_spec.rb} +11 -11
  211. data/spec/mongo/operation/write/bulk/{bulk_delete_spec.rb → delete_spec.rb} +18 -29
  212. data/spec/mongo/operation/write/bulk/{bulk_insert_spec.rb → insert_spec.rb} +3 -14
  213. data/spec/mongo/operation/write/bulk/{bulk_update_spec.rb → update_spec.rb} +8 -19
  214. data/spec/mongo/operation/write/command/delete_spec.rb +0 -16
  215. data/spec/mongo/operation/write/command/insert_spec.rb +0 -16
  216. data/spec/mongo/operation/write/command/update_spec.rb +0 -16
  217. data/spec/mongo/operation/write/delete_spec.rb +4 -4
  218. data/spec/mongo/operation/write/insert_spec.rb +2 -13
  219. data/spec/mongo/operation/write/update_spec.rb +7 -7
  220. data/spec/mongo/options/redacted_spec.rb +350 -0
  221. data/spec/mongo/protocol/kill_cursors_spec.rb +5 -3
  222. data/spec/mongo/protocol/query_spec.rb +15 -30
  223. data/spec/mongo/retryable_spec.rb +147 -0
  224. data/spec/mongo/server/connection_pool/queue_spec.rb +16 -0
  225. data/spec/mongo/server/connection_pool_spec.rb +50 -6
  226. data/spec/mongo/server/connection_spec.rb +49 -4
  227. data/spec/mongo/server/description_spec.rb +49 -3
  228. data/spec/mongo/server/monitor_spec.rb +51 -0
  229. data/spec/mongo/server_discovery_and_monitoring_spec.rb +32 -59
  230. data/spec/mongo/server_selection_rtt_spec.rb +37 -57
  231. data/spec/mongo/server_selection_spec.rb +19 -9
  232. data/spec/mongo/server_selector/nearest_spec.rb +35 -27
  233. data/spec/mongo/server_selector/primary_preferred_spec.rb +32 -30
  234. data/spec/mongo/server_selector/primary_spec.rb +21 -14
  235. data/spec/mongo/server_selector/secondary_preferred_spec.rb +28 -26
  236. data/spec/mongo/server_selector/secondary_spec.rb +24 -22
  237. data/spec/mongo/server_selector_spec.rb +87 -24
  238. data/spec/mongo/server_spec.rb +94 -8
  239. data/spec/mongo/socket/ssl_spec.rb +123 -13
  240. data/spec/mongo/socket/unix_spec.rb +52 -0
  241. data/spec/mongo/uri_spec.rb +295 -67
  242. data/spec/spec_helper.rb +40 -24
  243. data/spec/support/authorization.rb +23 -9
  244. data/spec/support/certificates/client.pem +4 -4
  245. data/spec/support/command_monitoring/bulkWrite.yml +73 -0
  246. data/spec/support/command_monitoring/command.yml +42 -0
  247. data/spec/support/command_monitoring/deleteMany.yml +55 -0
  248. data/spec/support/command_monitoring/deleteOne.yml +55 -0
  249. data/spec/support/command_monitoring/find.yml +219 -0
  250. data/spec/support/command_monitoring/insertMany.yml +81 -0
  251. data/spec/support/command_monitoring/insertOne.yml +51 -0
  252. data/spec/support/command_monitoring/updateMany.yml +67 -0
  253. data/spec/support/command_monitoring/updateOne.yml +95 -0
  254. data/spec/support/command_monitoring.rb +365 -0
  255. data/spec/support/connection_string.rb +228 -0
  256. data/spec/support/connection_string_tests/invalid-uris.yml +193 -0
  257. data/spec/support/connection_string_tests/valid-auth.yml +256 -0
  258. data/spec/support/connection_string_tests/valid-host_identifiers.yml +121 -0
  259. data/spec/support/connection_string_tests/valid-options.yml +30 -0
  260. data/spec/support/connection_string_tests/valid-unix_socket-absolute.yml +197 -0
  261. data/spec/support/connection_string_tests/valid-unix_socket-relative.yml +213 -0
  262. data/spec/support/connection_string_tests/valid-warnings.yml +55 -0
  263. data/spec/support/crud/read.rb +22 -19
  264. data/spec/support/crud/write.rb +58 -27
  265. data/spec/support/crud.rb +10 -2
  266. data/spec/support/gridfs.rb +637 -0
  267. data/spec/support/gridfs_tests/delete.yml +157 -0
  268. data/spec/support/gridfs_tests/download.yml +210 -0
  269. data/spec/support/gridfs_tests/download_by_name.yml +113 -0
  270. data/spec/support/gridfs_tests/upload.yml +158 -0
  271. data/spec/support/matchers.rb +1 -1
  272. data/spec/support/sdam/rs/equal_electionids.yml +44 -0
  273. data/spec/support/sdam/rs/new_primary_new_electionid.yml +95 -0
  274. data/spec/support/sdam/rs/null_election_id.yml +144 -0
  275. data/spec/support/sdam/rs/primary_disconnect_electionid.yml +124 -0
  276. data/spec/support/sdam/rs/primary_mismatched_me.yml +37 -0
  277. data/spec/support/sdam/rs/primary_to_no_primary_mismatched_me.yml +75 -0
  278. data/spec/support/sdam/rs/secondary_mismatched_me.yml +37 -0
  279. data/spec/support/sdam/sharded/mongos_disconnect.yml +104 -0
  280. data/spec/support/sdam/single/direct_connection_rsarbiter.yml +1 -1
  281. data/spec/support/sdam/single/direct_connection_rsprimary.yml +1 -1
  282. data/spec/support/sdam/single/direct_connection_rssecondary.yml +1 -1
  283. data/spec/support/sdam/single/direct_connection_slave.yml +1 -1
  284. data/spec/support/sdam/single/direct_connection_standalone.yml +1 -1
  285. data/spec/support/sdam/single/not_ok_response.yml +0 -1
  286. data/spec/support/server_discovery_and_monitoring.rb +22 -3
  287. data/spec/support/server_selection.rb +3 -1
  288. data/spec/support/shared/bulk_write.rb +218 -22
  289. data/spec/support/shared/server_selector.rb +80 -14
  290. data.tar.gz.sig +0 -0
  291. metadata +188 -59
  292. metadata.gz.sig +0 -0
  293. data/lib/mongo/bulk_write/bulk_writable.rb +0 -196
  294. data/lib/mongo/bulk_write/deletable.rb +0 -56
  295. data/lib/mongo/bulk_write/insertable.rb +0 -48
  296. data/lib/mongo/bulk_write/replacable.rb +0 -57
  297. data/lib/mongo/bulk_write/updatable.rb +0 -68
  298. data/lib/mongo/grid/fs.rb +0 -149
  299. data/lib/mongo/operation/list_collections/result.rb +0 -114
  300. data/lib/mongo/operation/list_indexes/result.rb +0 -118
  301. data/lib/mongo/operation/read/collections_info.rb +0 -68
  302. data/lib/mongo/operation/read/indexes.rb +0 -69
  303. data/lib/mongo/operation/read/list_collections.rb +0 -76
  304. data/lib/mongo/operation/read/list_indexes.rb +0 -78
  305. data/lib/mongo/operation/write/bulk/bulk_delete/result.rb +0 -75
  306. data/lib/mongo/operation/write/bulk/bulk_delete.rb +0 -145
  307. data/lib/mongo/operation/write/bulk/bulk_insert/result.rb +0 -130
  308. data/lib/mongo/operation/write/bulk/bulk_insert.rb +0 -132
  309. data/lib/mongo/operation/write/bulk/bulk_mergable.rb +0 -67
  310. data/lib/mongo/operation/write/bulk/bulk_update/result.rb +0 -162
  311. data/lib/mongo/operation/write/bulk/bulk_update.rb +0 -154
  312. data/lib/mongo/operation/write/bulk/legacy_bulk_mergable.rb +0 -83
  313. data/spec/mongo/bulk/bulk_write_spec.rb +0 -262
  314. data/spec/mongo/grid/fs_spec.rb +0 -160
  315. data/spec/mongo/loggable_spec.rb +0 -63
  316. data/spec/mongo/operation/aggregate_spec.rb +0 -127
  317. /data/lib/mongo/operation/{aggregate → commands/aggregate}/result.rb +0 -0
@@ -16,10 +16,10 @@ module Mongo
16
16
  module Grid
17
17
  class File
18
18
 
19
- # Encapsulates behaviour around GridFS file metadata.
19
+ # Encapsulates behaviour around GridFS files collection file document.
20
20
  #
21
21
  # @since 2.0.0
22
- class Metadata
22
+ class Info
23
23
 
24
24
  # Name of the files collection.
25
25
  #
@@ -35,8 +35,10 @@ module Mongo
35
35
  :filename => :filename,
36
36
  :_id => :_id,
37
37
  :md5 => :md5,
38
+ :length => :length,
38
39
  :metadata => :metadata,
39
- :upload_date => :uploadDate
40
+ :upload_date => :uploadDate,
41
+ :aliases => :aliases
40
42
  }.freeze
41
43
 
42
44
  # Default content type for stored files.
@@ -44,13 +46,13 @@ module Mongo
44
46
  # @since 2.0.0
45
47
  DEFAULT_CONTENT_TYPE = 'binary/octet-stream'.freeze
46
48
 
47
- # @return [ BSON::Document ] document The file metadata document.
49
+ # @return [ BSON::Document ] document The files collection document.
48
50
  attr_reader :document
49
51
 
50
- # Is this metadata equal to another?
52
+ # Is this file information document equal to another?
51
53
  #
52
- # @example Check metadata equality.
53
- # metadata == other
54
+ # @example Check file information document equality.
55
+ # file_info == other
54
56
  #
55
57
  # @param [ Object ] other The object to check against.
56
58
  #
@@ -58,14 +60,14 @@ module Mongo
58
60
  #
59
61
  # @since 2.0.0
60
62
  def ==(other)
61
- return false unless other.is_a?(Metadata)
63
+ return false unless other.is_a?(Info)
62
64
  document == other.document
63
65
  end
64
66
 
65
- # Get the BSON type for a metadata document.
67
+ # Get the BSON type for a files information document.
66
68
  #
67
69
  # @example Get the BSON type.
68
- # metadata.bson_type
70
+ # file_info.bson_type
69
71
  #
70
72
  # @return [ Integer ] The BSON type.
71
73
  #
@@ -74,10 +76,10 @@ module Mongo
74
76
  BSON::Hash::BSON_TYPE
75
77
  end
76
78
 
77
- # Get the metadata chunk size.
79
+ # Get the file chunk size.
78
80
  #
79
81
  # @example Get the chunk size.
80
- # metadata.chunk_size
82
+ # file_info.chunk_size
81
83
  #
82
84
  # @return [ Integer ] The chunksize in bytes.
83
85
  #
@@ -86,10 +88,10 @@ module Mongo
86
88
  document[:chunkSize]
87
89
  end
88
90
 
89
- # Get the metadata content type.
91
+ # Get the file information content type.
90
92
  #
91
93
  # @example Get the content type.
92
- # metadata.content_type
94
+ # file_info.content_type
93
95
  #
94
96
  # @return [ String ] The content type.
95
97
  #
@@ -98,32 +100,32 @@ module Mongo
98
100
  document[:contentType]
99
101
  end
100
102
 
101
- # Get the metadata filename.
103
+ # Get the filename from the file information.
102
104
  #
103
105
  # @example Get the filename.
104
- # metadata.filename
106
+ # file_info.filename
105
107
  #
106
108
  # @return [ String ] The filename.
107
109
  def filename
108
110
  document[:filename]
109
111
  end
110
112
 
111
- # Get the metadata id.
113
+ # Get the file id from the file information.
112
114
  #
113
- # @example Get the metadata id.
114
- # metadata.id
115
+ # @example Get the file id.
116
+ # file_info.id
115
117
  #
116
- # @return [ BSON::ObjectId ] The metadata id.
118
+ # @return [ BSON::ObjectId ] The file id.
117
119
  #
118
120
  # @since 2.0.0
119
121
  def id
120
122
  document[:_id]
121
123
  end
122
124
 
123
- # Create the new metadata document.
125
+ # Create the new file information document.
124
126
  #
125
- # @example Create the new metadata document.
126
- # Metadata.new(:filename => 'test.txt')
127
+ # @example Create the new file information document.
128
+ # Info.new(:filename => 'test.txt')
127
129
  #
128
130
  # @param [ BSON::Document ] document The document to create from.
129
131
  #
@@ -135,23 +137,23 @@ module Mongo
135
137
 
136
138
  # Get a readable inspection for the object.
137
139
  #
138
- # @example Inspect the metadata.
139
- # metadata.inspect
140
+ # @example Inspect the file information.
141
+ # file_info.inspect
140
142
  #
141
143
  # @return [ String ] The nice inspection.
142
144
  #
143
145
  # @since 2.0.0
144
146
  def inspect
145
- "#<Mongo::Grid::File::Metadata:0x#{object_id} chunk_size=#{chunk_size} " +
147
+ "#<Mongo::Grid::File::Info:0x#{object_id} chunk_size=#{chunk_size} " +
146
148
  "filename=#{filename} content_type=#{content_type} id=#{id} md5=#{md5}>"
147
149
  end
148
150
 
149
151
  # Get the length of the document in bytes.
150
152
  #
151
- # @example Get the length
152
- # metadata.length
153
+ # @example Get the file length from the file information document.
154
+ # file_info.length
153
155
  #
154
- # @return [ Integer ] The length.
156
+ # @return [ Integer ] The file length.
155
157
  #
156
158
  # @since 2.0.0
157
159
  def length
@@ -159,12 +161,12 @@ module Mongo
159
161
  end
160
162
  alias :size :length
161
163
 
162
- # Get the additional metadata.
164
+ # Get the additional metadata from the file information document.
163
165
  #
164
166
  # @example Get additional metadata.
165
- # metadata.metadata
167
+ # file_info.metadata
166
168
  #
167
- # @return [ String ] The additional metadata.
169
+ # @return [ String ] The additional metadata from file information document.
168
170
  #
169
171
  # @since 2.0.0
170
172
  def metadata
@@ -174,7 +176,7 @@ module Mongo
174
176
  # Get the md5 hash.
175
177
  #
176
178
  # @example Get the md5 hash.
177
- # metadata.md5
179
+ # file_info.md5
178
180
  #
179
181
  # @return [ String ] The md5 hash as a string.
180
182
  #
@@ -183,13 +185,13 @@ module Mongo
183
185
  document[:md5] || @client_md5
184
186
  end
185
187
 
186
- # Conver the metadata to BSON for storage.
188
+ # Convert the file information document to BSON for storage.
187
189
  #
188
- # @note If no md5 exists in the metadata (it was loaded from the server
189
- # and is not a new file) then we digest the md5 and set it.
190
+ # @note If no md5 exists in the file information document (it was loaded
191
+ # from the server and is not a new file) then we digest the md5 and set it.
190
192
  #
191
- # @example Convert the metadata to BSON.
192
- # metadata.to_bson
193
+ # @example Convert the file information document to BSON.
194
+ # file_info.to_bson
193
195
  #
194
196
  # @param [ String ] encoded The encoded data to append to.
195
197
  #
@@ -204,7 +206,7 @@ module Mongo
204
206
  # Get the upload date.
205
207
  #
206
208
  # @example Get the upload date.
207
- # metadata.upload_date
209
+ # file_info.upload_date
208
210
  #
209
211
  # @return [ Time ] The upload date.
210
212
  #
@@ -13,7 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  require 'mongo/grid/file/chunk'
16
- require 'mongo/grid/file/metadata'
16
+ require 'mongo/grid/file/info'
17
17
 
18
18
  module Mongo
19
19
  module Grid
@@ -24,17 +24,17 @@ module Mongo
24
24
  class File
25
25
  extend Forwardable
26
26
 
27
- # Delegate to metadata for convenience.
28
- def_delegators :metadata, :chunk_size, :content_type, :filename, :id, :md5, :upload_date
27
+ # Delegate to file info for convenience.
28
+ def_delegators :info, :chunk_size, :content_type, :filename, :id, :md5, :upload_date
29
29
 
30
30
  # @return [ Array<Chunk> ] chunks The file chunks.
31
31
  attr_reader :chunks
32
32
 
33
- # @return [ IO ] data The raw datafor the file.
33
+ # @return [ IO ] data The raw data for the file.
34
34
  attr_reader :data
35
35
 
36
- # @return [ Metadata ] metadata The file metadata.
37
- attr_reader :metadata
36
+ # @return [ File::Info ] info The file information.
37
+ attr_reader :info
38
38
 
39
39
  # Check equality of files.
40
40
  #
@@ -48,7 +48,7 @@ module Mongo
48
48
  # @since 2.0.0
49
49
  def ==(other)
50
50
  return false unless other.is_a?(File)
51
- chunks == other.chunks && data == other.data && metadata == other.metadata
51
+ chunks == other.chunks && data == other.data && info == other.info
52
52
  end
53
53
 
54
54
  # Initialize the file.
@@ -58,17 +58,20 @@ module Mongo
58
58
  #
59
59
  # @param [ IO, Array<BSON::Document> ] data The file or IO object or
60
60
  # chunks.
61
- # @param [ BSON::Document, Hash ] options The metadata options.
61
+ # @param [ BSON::Document, Hash ] options The info options.
62
62
  #
63
63
  # @option options [ String ] :filename Required name of the file.
64
64
  # @option options [ String ] :content_type The content type of the file.
65
+ # Deprecated, please use the metadata document instead.
65
66
  # @option options [ String ] :metadata Optional file metadata.
66
67
  # @option options [ Integer ] :chunk_size Override the default chunk
67
68
  # size.
69
+ # @option opts [ Array<String> ] :aliases A list of aliases.
70
+ # Deprecated, please use the metadata document instead.
68
71
  #
69
72
  # @since 2.0.0
70
73
  def initialize(data, options = {})
71
- @metadata = Metadata.new({ :length => data.length }.merge(options))
74
+ @info = Info.new(options.merge(:length => data.length))
72
75
  initialize_chunks!(data)
73
76
  end
74
77
 
@@ -97,7 +100,7 @@ module Mongo
97
100
  @chunks = chks
98
101
  @data = Chunk.assemble(chks)
99
102
  else
100
- @chunks = Chunk.split(value, metadata)
103
+ @chunks = Chunk.split(value, info)
101
104
  @data = value
102
105
  end
103
106
  end