uri
.var route = new AppParamRoute("/user/:userId/items/:itemId")
var params = route.parse_uri_parameters("/user/10/items/i125/desc")
assert params["userId"] == "10"
assert params["itemId"] == "i125"
assert params.length == 2
params = route.parse_uri_parameters("/")
assert params.is_empty
# Extract parameter values from `uri`.
# ~~~
# var route = new AppParamRoute("/user/:userId/items/:itemId")
# var params = route.parse_uri_parameters("/user/10/items/i125/desc")
# assert params["userId"] == "10"
# assert params["itemId"] == "i125"
# assert params.length == 2
#
# params = route.parse_uri_parameters("/")
# assert params.is_empty
# ~~~
fun parse_uri_parameters(uri: String): Map[String, String] do
var res = new HashMap[String, String]
if path_parts.is_empty then return res
var parts = uri.split("/")
for i in [0 .. path_parts.length[ do
if i >= parts.length then return res
var ppart = path_parts[i]
var part = parts[i]
if not ppart.match(part) then return res
if ppart isa UriParam then
res[ppart.name] = part
end
end
return res
end
lib/popcorn/pop_routes.nit:148,2--173,4