class RedisClient

def pipelined

def pipelined
  pipeline = Pipeline.new(@command_builder)
  yield pipeline
  if pipeline._size == 0
    []
  else
    results = ensure_connected(retryable: pipeline._retryable?) do |connection|
      commands = pipeline._commands
      @middlewares.call_pipelined(commands, config) do
        connection.call_pipelined(commands, pipeline._timeouts)
      end
    end
    pipeline._coerce!(results)
  end
end