diff options
author | enthus1ast <enthus1ast> | 2017-01-20 00:45:44 +0100 |
---|---|---|
committer | enthus1ast <enthus1ast> | 2017-01-20 00:45:44 +0100 |
commit | 9626919cd3ea3bc6c0a0d1e13eda366503b3be7e (patch) | |
tree | 74210520f156937bd7aaf36ea72f77fd5d4fb5b3 /lib | |
parent | e8a00b805f841a68911026f4461c1cb5c936711b (diff) | |
download | Nim-9626919cd3ea3bc6c0a0d1e13eda366503b3be7e.tar.gz |
added isAbsolute to uri.nim
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/uri.nim | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/pure/uri.nim b/lib/pure/uri.nim index e7db39c10..88420530c 100644 --- a/lib/pure/uri.nim +++ b/lib/pure/uri.nim @@ -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:1535–3613".parseUri().isAbsolute() == true + \ No newline at end of file |