module Mongo::Operation::Executable
Shared executable behavior of operations.
@since 2.5.2
Public Instance Methods
execute(server)
click to toggle source
# File lib/mongo/operation/shared/executable.rb, line 23 def execute(server) result = get_result(server) process_result(result, server) result.validate! end
Private Instance Methods
dispatch_message(server)
click to toggle source
Returns a Protocol::Message
or nil
# File lib/mongo/operation/shared/executable.rb, line 40 def dispatch_message(server) server.with_connection do |connection| connection.dispatch([ message(server) ], operation_id) end end
get_result(server)
click to toggle source
# File lib/mongo/operation/shared/executable.rb, line 35 def get_result(server) result_class.new(dispatch_message(server)) end
process_result(result, server)
click to toggle source
# File lib/mongo/operation/shared/executable.rb, line 46 def process_result(result, server) server.update_cluster_time(result) if result.not_master? || result.node_recovering? server.unknown! server.monitor.scan_semaphore.signal end session.process(result) if session result end
result_class()
click to toggle source
# File lib/mongo/operation/shared/executable.rb, line 31 def result_class Result end