diff --git a/lib/pure/uri.nim b/lib/pure/uri.nim new file mode 100644 index 000000000..cfe424dc6 --- /dev/null +++ b/lib/pure/uri.nim @@ -0,0 +1,35 @@ +# +# +# Nimrod's Runtime Library +# (c) Copyright 2012 Dominik Picheta +# +# See the file "copying.txt", included in this +# distribution, for details about the copyright. +# +import strutils +type + TUrl* = distinct string + +proc `$`*(url: TUrl): string = return string(url) + +proc `/`*(a, b: TUrl): TUrl = + ## Joins two URLs together, separating them with / if needed. + var urlS = $a + var bS = $b + echo(urlS, " & ", bS) + if urlS == "": return b + if urlS[urlS.len-1] != '/': + urlS.add('/') + if bS[0] == '/': + urlS.add(bS.substr(1)) + else: + urlS.add(bs) + result = TUrl(urlS) + echo(result) + +proc add*(url: var TUrl, a: TUrl) = + ## Appends url to url. + url = url / a + +when isMainModule: + assert($("http://".TUrl / "localhost:5000".TUrl) == "http://localhost:5000") \ No newline at end of file