module Mongo::Operation::OpMsgOrFindCommand
Shared behavior of executing the operation as an OpMsg when supported, as a Command
when find command is supported by the server, and as Legacy otherwise.
@api private
Public Instance Methods
Source
# File lib/mongo/operation/shared/op_msg_or_find_command.rb, line 26 def execute(server, client:) server.with_connection do |connection| operation = final_operation(connection) operation.execute(connection, client: client) end end
Private Instance Methods
Source
# File lib/mongo/operation/shared/op_msg_or_find_command.rb, line 35 def final_operation(connection) cls = if connection.features.op_msg_enabled? polymorphic_class(self.class.name, :OpMsg) elsif connection.features.find_command_enabled? polymorphic_class(self.class.name, :Command) else polymorphic_class(self.class.name, :Legacy) end cls.new(spec) end