lib/mongo/operation/write/update_user.rb in mongo-2.1.0.beta vs lib/mongo/operation/write/update_user.rb in mongo-2.1.0.rc0
- old
+ new
@@ -28,43 +28,17 @@
# option spec :user [ Auth::User ] The user to update.
# option spec :db_name [ String ] The name of the database.
#
# @since 2.0.0
class UpdateUser
- include Executable
+ include GLE
+ include WriteCommandEnabled
include Specifiable
- # Execute the operation.
- #
- # @note Updating users behaves different on 2.7+, 2.6.x, and
- # 2.4- so we need to break this out into separate operations.
- #
- # @example Execute the operation.
- # operation.execute(context)
- #
- # @param [ Mongo::Server::Context ] context The context for this operation.
- #
- # @return [ Result ] The operation result.
- #
- # @since 2.0.0
- def execute(context)
- if context.features.write_command_enabled?
- execute_write_command(context)
- else
- execute_message(context)
- end
- end
-
private
- def execute_write_command(context)
- Result.new(Command::UpdateUser.new(spec).execute(context)).validate!
- end
-
- def execute_message(context)
- context.with_connection do |connection|
- Result.new(connection.dispatch([ message, gle ].compact)).validate!
- end
+ def write_command_op
+ Command::UpdateUser.new(spec)
end
def message
user_spec = { user: user.name }.merge(user.spec)
Protocol::Update.new(db_name, Auth::User::COLLECTION, { user: user.name }, user_spec)