module Redis::Cluster::NodeLoader

def fetch_node_info(node)

def fetch_node_info(node)
  node.call(%i[cluster nodes])
      .split("\n")
      .map { |str| str.split(' ') }
      .map { |arr| [arr[1].split('@').first, (arr[2].split(',') & %w[master slave]).first] }
      .to_h
end

def load_flags(nodes)

def load_flags(nodes)
  errors = nodes.map do |node|
    begin
      return fetch_node_info(node)
    rescue CannotConnectError, ConnectionError, CommandError => error
      error
    end
  end
  raise InitialSetupError, errors
end