module Mongo::Operation::OpMsgOrCommand

Shared behavior of executing the operation as an OpMsg when supported or as a Command otherwise.

@api private

Public Instance Methods

execute(server) click to toggle source
# File lib/mongo/operation/shared/op_msg_or_command.rb, line 25
def execute(server)
  operation = final_operation(server)
  operation.execute(server)
end

Private Instance Methods

final_operation(server) click to toggle source
# File lib/mongo/operation/shared/op_msg_or_command.rb, line 32
def final_operation(server)
  cls = if server.features.op_msg_enabled?
    polymorphic_class(self.class.name, :OpMsg)
  else
    polymorphic_class(self.class.name, :Command)
  end
  cls.new(spec)
end