class Redis::Cluster::Option

def parse_node_url(addr)

def parse_node_url(addr)
  uri = URI(addr)
  raise InvalidClientOptionError, "Invalid uri scheme #{addr}" unless VALID_SCHEMES.include?(uri.scheme)
  db = uri.path.split('/')[1]&.to_i
  { scheme: uri.scheme, username: uri.user, password: uri.password, host: uri.host, port: uri.port, db: db }
    .reject { |_, v| v.nil? || v == '' }
rescue URI::InvalidURIError => err
  raise InvalidClientOptionError, err.message
end