added isAbsolute to uri.nim

This commit is contained in:
enthus1ast
2017-01-20 00:45:44 +01:00
parent e8a00b805f
commit 9626919cd3

View File

@@ -245,6 +245,10 @@ proc combine*(uris: varargs[Uri]): Uri =
for i in 1 .. <uris.len:
result = combine(result, uris[i])
proc isAbsolute*(uri: Uri): bool =
## returns true if URI is absolute, false otherwise
return uri.scheme != "" and (uri.hostname != "" or uri.path != "")
proc `/`*(x: Uri, path: string): Uri =
## Concatenates the path specified to the specified URI's path.
##
@@ -452,3 +456,14 @@ when isMainModule:
block:
let foo = parseUri("http://example.com") / "/baz"
doAssert foo.path == "/baz"
# isAbsolute tests
block:
doAssert "www.google.com".parseUri().isAbsolute() == false
doAssert "http://www.google.com".parseUri().isAbsolute() == true
doAssert "/search".parseUri().isAbsolute() == false
doAssert "file:/dir/file".parseUri().isAbsolute() == true
doAssert "file://localhost/dir/file".parseUri().isAbsolute() == true
doAssert "https://example.org/URI/resource.txt".parseUri().isAbsolute() == true
doAssert "urn:ISSN:15353613".parseUri().isAbsolute() == true