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 username = uri.user ? URI.decode_www_form_component(uri.user) : nil password = uri.password ? URI.decode_www_form_component(uri.password) : nil { scheme: uri.scheme, username: username, password: password, host: uri.host, port: uri.port, db: db } .reject { |_, v| v.nil? || v == '' } rescue URI::InvalidURIError => err raise InvalidClientOptionError, err.message end