lib/mongo/cursor/builder/op_kill_cursors.rb in mongo-2.2.7 vs lib/mongo/cursor/builder/op_kill_cursors.rb in mongo-2.3.0

- old
+ new

@@ -1,6 +1,6 @@ -# Copyright (C) 2015 MongoDB, Inc. +# Copyright (C) 2015-2016 MongoDB, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # @@ -47,9 +47,37 @@ # @return [ Hash ] The specification. # # @since 2.2.0 def specification { :coll_name => collection_name, :db_name => database.name, :cursor_ids => [ cursor.id ] } + end + + class << self + + # Update a specification's list of cursor ids. + # + # @example Update a specification's list of cursor ids. + # OpKillCursors.update_cursors(spec, ids) + # + # @return [ Hash ] The specification. + # @return [ Array ] The ids to update with. + # + # @since 2.3.0 + def update_cursors(spec, ids) + spec.merge!(cursor_ids: spec[:cursor_ids] & ids) + end + + # Get the list of cursor ids from a spec generated by this Builder. + # + # @example Get the list of cursor ids. + # OpKillCursors.cursors(spec) + # + # @return [ Hash ] The specification. + # + # @since 2.3.0 + def get_cursors_list(spec) + spec[:cursor_ids] + end end end end end end