module Mongo::Operation::Executable

This module provides the execute method that many operations use. It makes sure to instantiate the appropriate Result class for the operation's response.

@since 2.0.0

Public Instance Methods

execute(server) click to toggle source

Execute the operation.

@example Execute the operation.

operation.execute(server)

@param [ Mongo::Server ] server The server to send this operation to.

@return [ Result ] The operation response, if there is one.

@since 2.0.0

# File lib/mongo/operation/executable.rb, line 34
def execute(server)
  server.with_connection do |connection|
    result_class = self.class.const_defined?(:Result, false) ? self.class::Result : Result
    result = result_class.new(connection.dispatch([ message(server) ], operation_id))
    server.update_cluster_time(result)
    session.process(result) if session
    result.validate!
  end
end