From 2fc4f9ca003bfb2d9818fe51a725899aed5f4553 Mon Sep 17 00:00:00 2001 From: Automatic build Date: Wed, 1 Nov 2017 16:57:26 +0000 Subject: [PATCH] Build book from commit 67a40d91948bbeb61b5b33bd01035dff86486433 [skip ci] --- advanced/configuring_routers.html | 2 +- advanced/different_routers.html | 2 +- advanced/index.html | 2 +- advanced/route_validation.html | 2 +- basics/index.html | 2 +- basics/name_based_routing.html | 2 +- basics/path_based_routing.html | 2 +- basics/route_conflicts.html | 2 +- basics/route_data.html | 2 +- basics/route_syntax.html | 2 +- basics/router.html | 2 +- index.html | 7 ++++++- performance.html | 2 +- ring/compiling_middleware.html | 2 +- ring/data_driven_middleware.html | 2 +- ring/dynamic_extensions.html | 2 +- ring/index.html | 2 +- ring/parameter_coercion.html | 2 +- ring/ring.html | 2 +- search_index.json | 2 +- 20 files changed, 25 insertions(+), 20 deletions(-) diff --git a/advanced/configuring_routers.html b/advanced/configuring_routers.html index c48ede67..689b351f 100644 --- a/advanced/configuring_routers.html +++ b/advanced/configuring_routers.html @@ -512,7 +512,7 @@ diff --git a/advanced/different_routers.html b/advanced/different_routers.html index 982bf58a..3f56a257 100644 --- a/advanced/different_routers.html +++ b/advanced/different_routers.html @@ -504,7 +504,7 @@ diff --git a/advanced/index.html b/advanced/index.html index 6eda5a59..b993f224 100644 --- a/advanced/index.html +++ b/advanced/index.html @@ -474,7 +474,7 @@ diff --git a/advanced/route_validation.html b/advanced/route_validation.html index 0f33c89b..42dc281d 100644 --- a/advanced/route_validation.html +++ b/advanced/route_validation.html @@ -623,7 +623,7 @@ diff --git a/basics/index.html b/basics/index.html index 5219c6cc..287de2c8 100644 --- a/basics/index.html +++ b/basics/index.html @@ -477,7 +477,7 @@ diff --git a/basics/name_based_routing.html b/basics/name_based_routing.html index d03cd9d6..2711980e 100644 --- a/basics/name_based_routing.html +++ b/basics/name_based_routing.html @@ -518,7 +518,7 @@ diff --git a/basics/path_based_routing.html b/basics/path_based_routing.html index 40997740..f5c969e5 100644 --- a/basics/path_based_routing.html +++ b/basics/path_based_routing.html @@ -496,7 +496,7 @@ diff --git a/basics/route_conflicts.html b/basics/route_conflicts.html index a341a6d3..6f22d065 100644 --- a/basics/route_conflicts.html +++ b/basics/route_conflicts.html @@ -513,7 +513,7 @@ diff --git a/basics/route_data.html b/basics/route_data.html index 9af6ad35..b71cb268 100644 --- a/basics/route_data.html +++ b/basics/route_data.html @@ -547,7 +547,7 @@ diff --git a/basics/route_syntax.html b/basics/route_syntax.html index 80d5bf65..377d5ca1 100644 --- a/basics/route_syntax.html +++ b/basics/route_syntax.html @@ -526,7 +526,7 @@ diff --git a/basics/router.html b/basics/router.html index 30726ea8..b9e91bdd 100644 --- a/basics/router.html +++ b/basics/router.html @@ -506,7 +506,7 @@ diff --git a/index.html b/index.html index 90b11b00..3a2352ef 100644 --- a/index.html +++ b/index.html @@ -438,6 +438,11 @@

To use Reitit, add the following dependecy to your project:

[metosin/reitit "0.1.0-SNAPSHOT"]
 
+

Optionally, the parts can be required separately:

+
[metosin/reitit-core "0.1.0-SNAPSHOT"] ; just the router
+[metosin/reitit-ring "0.1.0-SNAPSHOT"] ; ring-router
+[metosin/reitit-spec "0.1.0-SNAPSHOT"] ; spec-coercion
+

Examples

Simple router

(require '[reitit.core :as r])
@@ -572,7 +577,7 @@
     
 
diff --git a/performance.html b/performance.html
index 740f2e47..b2981041 100644
--- a/performance.html
+++ b/performance.html
@@ -512,7 +512,7 @@
     
 
diff --git a/ring/compiling_middleware.html b/ring/compiling_middleware.html
index 422f559a..aa0dc24b 100644
--- a/ring/compiling_middleware.html
+++ b/ring/compiling_middleware.html
@@ -528,7 +528,7 @@
     
 
diff --git a/ring/data_driven_middleware.html b/ring/data_driven_middleware.html
index 729bd7d9..bcc39231 100644
--- a/ring/data_driven_middleware.html
+++ b/ring/data_driven_middleware.html
@@ -512,7 +512,7 @@
     
 
diff --git a/ring/dynamic_extensions.html b/ring/dynamic_extensions.html
index 0dd38fcb..7eba3917 100644
--- a/ring/dynamic_extensions.html
+++ b/ring/dynamic_extensions.html
@@ -504,7 +504,7 @@
     
 
diff --git a/ring/index.html b/ring/index.html
index 555cdf15..4c35c448 100644
--- a/ring/index.html
+++ b/ring/index.html
@@ -476,7 +476,7 @@
     
 
diff --git a/ring/parameter_coercion.html b/ring/parameter_coercion.html
index cd463f28..85374b6e 100644
--- a/ring/parameter_coercion.html
+++ b/ring/parameter_coercion.html
@@ -549,7 +549,7 @@
     
 
diff --git a/ring/ring.html b/ring/ring.html
index c040535e..64840e03 100644
--- a/ring/ring.html
+++ b/ring/ring.html
@@ -553,7 +553,7 @@
     
 
diff --git a/search_index.json b/search_index.json
index 02604fe8..b2c66521 100644
--- a/search_index.json
+++ b/search_index.json
@@ -1 +1 @@
-{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["\"/api/admin/users\"})","\"/api/ipa\")","\"/api/orders/1\")","\"/api/orders/1\"}","\"/api/orders/2\"}","\"/api/orders/:id\"","\"/api/orders/:id\",","\"/api/ping\"","\"/api/ping\")","\"/api/ping\"}","\"0.1.0","\"1\"}","\"ok\",","\"ok\"})","#match{:templ","#methods{...}","#object[user$handler]}","#partialmatch{:templ","#{:id}}","&","'())","'[reitit.cor","'[reitit.r","(","(:api","(app","(clojure.spec)","(clojure.spec),","(def","(defn","(fn","(fnil","(handler","(r/match","(r/partial","(r/router","(requir","(ring/get","(ring/r","(ring/rout","(updat","200,","2})","2},","::ipa)","::order","::ping)","::ping))","::ping]","::ping}","::ping}]",":a",":admin]]}",":admin}",":api]]",":api]]}",":bodi",":get",":get,",":handler",":meta",":middlewar",":name",":param",":path",":post",":put,",":request",":requir",":result",":uri",":user/ord",":wrap",";",">","[\"/admin\"","[\"/api\"","[\"/api/orders/:id\"","[\"/ping\"","[\"/users\"","[[\"/api/ping\"","[[#object[user$wrap]","[[wrap","[_]","[handler","[metosin/reitit","[request]","add","app","base","bi","both","class","clojure(script)","coercion","compilation,","conflict","conj","data","dependeci","direct","driven","dynam","exampl","extend","extens","fast","first","follow","functions,","handler","handler}]]])))","id","id)","id))","id)))","id]","id]]))","id}","id},","interceptor","introduct","librari","match?","meta","method","method.","middlewar","middleware,","more.","name","nil","nil,","paramet","path","pluggabl","project:","r])","reitit","reitit,","request)","resolut","revers","ring","ring])","rout","router","router)","routing.","routing:","simpl","small","snapshot\"]","support","syntax","true","us","wrap","{:get","{:handler","{:id","{:middlewar","{:name","{:request","{:statu","{}"],"basics/":["base","basic","conflict","data","name","path","rout","router","syntax"],"basics/route_syntax.html":["\"/\"","'add","'get","(*path).","(:id)","([\"/get","(condp","(cqr","(defn","(for","(if","(name","(non","(str","::admin]","::admin}]","::db]]","::db]}","::db}]","::dev","::ping]","::ping]]","::ping}]]","::pong}]]",":command",":get",":let",":name",":post)]]",":queri",";","=","[\"\"","[\"/add","[\"/admin\"","[\"/api\"","[\"/api/:version/ping\"]]","[\"/api/admin/db\"","[\"/api/ping\"","[\"/db\"","[\"/dev","[\"/ping\"","[\"/ping\"]","[\"/pong\"","[\"/pong\"]]","[\"/public/*path\"]","[::admin],","[::admin]}","[::api","[:command","[[\"/api/admin\"","[[\"/ping\"","[[\"/ping\"]","[[\"/users/:us","[[:queri","[[type","[action","[add","[get","[interceptor]}}])","[path","action","argument","arguments:","catch","child","cqr","creat","data,","defin","dev","easi","exampl","false)","flattened:","gener","id\"]","ignored.","interceptor))","interceptor]","it'","list","method","mode?","mode?]","nest","nil","nil]","option","order\"","order]]","order]}}])","paramet","parameter:","parameters:","path","programmatically:","rout","route:","routes.","routes:","same","sequential)","simpl","string","syntax","tools\"","tools])])","two","type","user\"","user]","user]}}]","vector","wrap","{:get","{:interceptor","{:middlewar","{:name","{:post","{method"],"basics/router.html":["'[reitit.cor","(def","(defprotocol","(match","(option","(r/rout","(r/router","(requir","(rout","(router","(via","::ping]","::user]]]))",":a",":mix",":user/ping}]",":user/user}]]",";","[\"/api/user/:id\"","[\"/ping\"","[\"/user/:id\"","[[\"/api\"","[[\"/api/ping\"","[thi","[this])","actual","argument","behind","coerc","compil","conflict","creat","created,","data","done:","expand","flatten","follow","function,","get","implement","instanc","map.","meta","name","name]","need","option","params]))","path","path])","protocol)","protocol.","protocol:","r])","raw","reitit.core/expand","reitit.core/rout","resolv","rout","router","router)","router:","routing,","satisfi","scene","select","step","take","tree","tree:","{:name"],"basics/path_based_routing.html":["\"/api/user/1\"","\"/api/user/1\")","\"/api/user/:id\"","\"/hello\")","\"1\"}}","#match{:templ","'[reitit.cor","(def","(onli","(r/match","(r/router","(requir","::ping]","::user]]]))",":a",":meta",":param",":path",":result",":user/user}",";","[\"/ping\"","[\"/user/:id\"","[[\"/api\"","argument","base","done","exact","following:","function.","given","information:","match","match,","matched,","miss","nil","nil,","nil:","on","paramet","partialmatch,","path","provid","r])","reitit.core/match","return","revers","rout","router","router:","routing)","take","us","{:id","{:name"],"basics/name_based_routing.html":["\"/api/ping\"","\"/api/ping\"}","\"/api/user/1\"","\"/api/user/:id\"","\"/api/user/:id\",","\"1\"})","\"1\"}}","#match{:templ","#partialmatch{:templ","#{:id}","#{:id}}","'[reitit.cor","(def","(r/match","(r/partial","(r/rout","(r/router","(requir","(reverse)","/api/user/:id:","::kikka)","::ping)","::ping]","::user","::user)","::user))","::user]]]))",":a",":meta",":name",":param",":path",":requir",":result",":user/ping}",":user/user]",":user/user}",":user/user},",";","[\"/ping\"","[\"/user/:id\"","[:user/p","[[\"/api\"","base","data","defined,","except","exceptioninfo","given","list","match","match?","miss","name","name!","name.","names:","nil","nil,","nil:","param","paramet","parameters:","partialmatch","path","provid","r])","return","returned:","rout","route:","router","router)","router:","set,","throw","true","version:","{:id","{:name","{}"],"basics/route_data.html":["\"/ping\"","\"/ping\")","\"/ping\"}","#match{:templ","#{:admin}","#{:admin}}","#{:db","'[reitit.cor","(def","(r/match","(r/rout","(r/router","(requir","::db]","::ping)","::ping]","::users]","::users}",":a",":append,",":coerc",":compil",":displac",":handler",":meta",":name",":param",":path",":prepend,",":replac",":result",":role",":user/ping}",":user/ping}]",";","[\"/admin\"","[\"/api\"","[\"/api/admin/db\"","[\"/api/admin/users\"","[\"/db\"","[\"/ping\"","[\"/pong\"","[\"/users\"","[::api","[::api]","[::api]}","[::db]","[[\"/api/ping\"","[[\"/ping\"","^:replac","accumul","adapt","add","admin}}]]","admin}}]]]))","applic","argument","arguments.","attacht","behavior","both","case","cheng","client","co","colect","components.","created.","custom","data","data.","data:","default","default,","easi","enabl","exampl","exist","expand","expans","function","heart","hooks.","identity]","identity]}","identity}}]]","identity}}]]))","implement","interpet","it'","key","keyword","leaf","library.","map","map.","match","match.","merge.","meta","name","nest","nil","nil]","non","on","options.","overridden","path","principl","protocol","r])","recurs","reitit/expand","resolv","retriev","return","root","rout","router","router)","sequenti","target","them.","toward","tree:","trees,","us","via","whole","{:get","{:handler","{:interceptor","{:name","{:role","{}"],"basics/route_conflicts.html":["'[reitit.cor","(comp","(def","(r/router","(requir","/:user","/:version/statu","/bulk/:bulk","/public/*path",":a",":conflict",";",">","[\"/:user","[\"/:version/status\"]])","[\"/bulk/:bulk","[\"/public/*path\"]","[[\"/ping\"]","allow","callback.","called.","clojure.lang.exceptioninfo:","compilerexcept","conflicit","conflict","conflicts:","contain","default","default,","descript","effec","especi","ex","exampl","exceptioninfo","explicit","first","good,","id","id\"]","id/ord","id/orders\"]","implement","info","librari","log","lookup.","mani","match","merg","message.","multipl","pass","path","println","r])","reitit","reitit/conflict","resolut","resolv","rest","rout","router","routes)","routes:","run","singl","sources.","str)})","throw","thrown:","tree","unreachanle.","us","usually,","{:conflict"],"advanced/":["advanc","configur","differ","rout","router","valid"],"advanced/configuring_routers.html":["#{route}}","(default",":coerc",":compil",":conflict",":expand",":meta",":path",":rout",":router","=>","[])","actual","allow","arg","avail","base","clojure.spec","coerc","compil","configur","conflict","conflicts!)","data","descript","effect","expand","fast,","follow","function","handl","handler","handlers.","implement","initi","key","meta","nil","opt","option","options.","overrid","path","reitit.core/expand)","reitit.core/router:","reitit.core/throw","resolv","result","return","rout","route,","router","side","thing","throw","valid","vector","via","{rout"],"advanced/different_routers.html":["(r/router","::singl",":linear",":lookup",":mix",":prefix",":router",";","ask","base","best","both","catch","configur","conflicts.","creat","descript","differ","effect","expand","fast","fastest","found.","hash","https://github.com/julienschmidt/httprouter#how","implement","implementation.","inspect","intern","kind","lookup","manual","match","name","on","option,","origin","parameters.","path","pedest","possibl","protocol,","reitit","resolv","rout","route.","router","router)","router,","router:","routers.","routes.","see","select","set","sever","ship","start","static","suitabl","todo:","top","tree","until","us","valid","work","worlds."],"advanced/route_validation.html":["\"/\"))","\"/\")))","\"/\"))))","\"0.3.0\"]","\"1.9.0","\"1.9.660\"]","\"tenant1\"","#'reitit.core/rout","%","%)","'[clojure.spec.alpha","'[clojure.spec.test.alpha","'[expound.alpha","'[reitit.cor","'[reitit.spec","'[reitit.spec])","(*","(?","([\"/api\"","([...","(and","(blank?","(cat","(clojure.core/fn","(clojure.core/or","(clojure.spec.alpha/*","(clojure.spec.alpha/?","(clojure.spec.alpha/and","(clojure.spec.alpha/cat","(clojure.spec.alpha/col","(clojure.spec.alpha/nil","(clojure.spec.alpha/or","(clojure.string/blank?","(clojure.string/start","(def","(fn","(if","(nilabl","(or","(r/router","(requir","(s/explain","(s/valid?","(set!","(start","(stest/instru","...","...])","1.8","2","::spec/raw","::tenant1])",":a",":arg",":child",":clojure.spec.alpha/spec",":clojure.spec.alpha/valu",":dev",":into",":path",":path]",":reitit.spec/arg)",":reitit.spec/path",":reitit.spec/path:",":reitit.spec/raw",":rout",":user/tenant1",":user/tenant1]",";","[\"/api\"","[\"/ping\"]","[\"/public\"","[\"pong\"]]])","[\"tenant1\"","[%]","[...","[0]","[1]","[:rout","[:routes]","[]))","[clojur","[expound","[org.clojure/clojur","[org.clojure/clojurescript","^^^^^^","`reitit/router)","add","alpha17\"]","argument","at:","beta2\"]","bootstrapping:","call","clojur","clojure.core/string?","clojure.lang.exceptioninfo:","clojure.spec","compilerexcept","conform","contain","data","db","db)","definit","depend","detect","develop","error","exampl","expound","expound/printer)","expound])","fail","fals","first","following:","function","futur","go:","higher","higher)","in:","instrument","namespac","note:","on","options.","out*","predicate:","pretti","print","problems.","r])","raw","readi","reitit.core/rout","reitit.spec","relev","requir","rout","route))))","route:","router","routes,","routes:","s/*explain","s])","satisfi","someth","spec","spec:","spec])","stest])","time","to:","todo","us","used)","val:","valid","with?"],"ring/":["coercion","compil","data","driven","dynam","extens","middlewar","paramet","ring","router"],"ring/ring.html":["\"/api/admin/db\"})","\"/api/ping\"})","\"/favicon.ico\"})","\"/ping\"","\"/ping\"})","\"ok\"}","\"ok\"})","#endpoint{:meta","#methods{:ani","#object[...],","#object[...]}","#object[...]},","%","&","'[reitit.r","(","(app","(conj","(def","(defn","(fn","(fnil","(handler","(reitit/match","(reitit/routes))","(requir","(ring/get","(ring/r","(ring/rout","(updat","2","200,","3","::acc","::ping","::ping)",":a",":admin",":admin]]}",":api)]}",":bodi",":db",":db]]",":delet",":delete,",":delete]]",":get",":get,",":handler",":handler)})",":handler]}",":head,",":middlewar",":options,",":patch,",":path)",":post",":put,",":put.",":request",":uri",";",">","?arg","[\"/admin\"","[\"/api\"","[\"/db\"","[\"/ping\"","[#(wrap","[::acc]}]","[:api","[[\"/ping\"","[[wrap","[])","[]}}]]","[_]","[handler","[request]","[{:key","acc","ad","add","app","app:","appli","args.","ariti","async","base","both","built","chain","clojur","clojurescript,","compil","compiler,","conj","correctly:","creat","custom","defined.","element","ensur","expand","following:","found.","function","function.","handl","handler","handler:","handler]","handler])))","handlers,","handler}])))","handler}}]]])))","id))))","id]","it'","key,","keys:","level","look","matches,","method","method.","methods.","middlewar","middleware:","name","nest","nil","node.j","normal","note","optim","optin","provid","reitit.ring/rout","request","respons","results:","resut","revers","ring","ring])","rout","router","router)","routing:","run","show","simpl","stuctur","submap.","support","third","too.","top","under","us","valu","vector","vector.","work","wrap","{:handler","{:middlewar","{:name","{:request","{:statu"],"ring/dynamic_extensions.html":["\"/api/admin/ping\",","\"/api/admin/ping\"})","\"/api/ping\"})","\"forbidden\"}","\"ok\"}","\"ok\"}))","#{:admin}}","#{:admin}})","'[clojure.set","(and","(app","(constantli","(def","(defn","(effect","(fn","(handler","(if","(let","(not","(requir","(ring/get","(ring/r","(ring/rout","(seq","(set/subset?","(some","200,","403,","::role","::roles)]",":a",":bodi",":get,",":meta",":uri",";",">","[\"/admin\"","[\"/ping\"","[::roles]","[[\"/api\"","[handler]","[requir","[wrap","[{:key","access","ad","anonym","app","author","base","build","data","dynam","enforc","exampl","extens","extract","guard","handler","handler]","handler]]]]","hoc","inject","match","match)","match.","meta","method","middlewar","mount","public","reitit.ring/get","request","request)))))","request}]","requir","required)","ring","role","roles)))","roles:","roles]}})))","rout","route:","router","routes):","runtim","set])","system.","us","user","via","wrap","{::role","{:meta","{:middlewar","{:request","{:statu"],"ring/data_driven_middleware.html":["\"a","'[reitit.middlewar","(and","(api","(def","(fn","(middleware/cr","(optional,recommend","(requir","(wrap","1","::wrap2","::wrap3",":a",":api",":api))})",":descript",":gen",":name",":wrap",";;","=>","[handler]","actual","arg\"","arg.\"","args?","back","class","clojure(script)","compil","compiled)","compiled,","compos","creat","data","descript","doc","driven","enabl","etc).","expand","expans","first","follow","function","function,","function.","handler","key","keyword","later","libs)","littl","map","map:","middlewar","middleware.","middleware])","more!","mw,","name","nice","normal","option","penalty.","perform","plain","processing,","produc","protocol,","purpose:","qualifi","record","record:","records,","reitit","reitit.middleware/intomiddlewar","reitit.ring.middleware/cr","reitit.ring.middleware/middlewar","request","respons","result","rout","runtim","see","special","store","support","take","todo","togeth","unwrap","us","used.","via","wrap2","wrap3","wrap}))","zero","{:name"],"ring/parameter_coercion.html":["\"/api/ping\"","\"0.1.123\"]","\"0.4.0\"]","\"1.9.0","\"everyth","&","'[clojure.spec.alpha","'[reitit.r","'[reitit.ring.coercion","'[reitit.ring.coercion.spec","'[spec","(+","(app","(def","(fn","(or","(recommend","(requir","(ring/r","(ring/rout","(s/def","(s/key","(st/spec","/","1,","1.9.0","200","200,","2}})","3}}","::i","::request","::request}","::respons","::response}}","::total","::x","::y]))",":a",":bodi",":body,",":body}",":coercion",":default",":descript",":form,",":get",":header",":paramet",":parameters.",":parameters}]",":path.",":query,",":req",":respons",":schema",":uri",":y",";","[\"/api\"","[\"/ping\"","[::total]))","[::x","[coercion/gen","[metosin/spec","[org.clojure/clojur","[org.clojure/spec.alpha","[x","[{{{:key","add","adopt","api.","app","befor","beta2\"]","clojur","clojure.spec","code","coerc","coercion","coercion,","coercion.","coercion/gen","coercion])","compojur","conforming,","currently,","data","data,","defin","defined):","depend","descript","differ","doesn't","else\")","error","exampl","fails,","follow","following:","format","gen","handler","implemen","inject","int?)","int?))","int?,","int?}}","int?}}}","introduc","key","manual","map","map,","meta","method","middlewar","mount","need","note:","on","option","origin","param","paramet","parameters/gen","parameters:","pluggabl","po","project:","protocol,","provid","reitit","reitit.ring.coercion.protocol/coercion","reitit.ring.coercion.spec/speccoercion","reitit.ring.coercion/gen","request","respons","response]","ring","ring,","ring])","rout","router","runtim","s])","ship","shipped,","spec","spec/coercion}})))","spec])","specs.","st])","statu","submap","succeeds,","support","swagger:","thrown.","tool","tools.cor","tools.core/spec.","transform","un","under","understood","us","values.","via","wrap","x","y)}})}}]]","y]}","{200","{:bodi","{:handler","{:meta","{:middlewar","{:paramet","{:request","{:schema","{:statu","{:total","{:x"],"ring/compiling_middleware.html":["\"gener","\"pluggabl","#(respond","%))","%))))","(","(:request","([request","([request]","(and","(coerc","(compiled)","(def","(defn","(fn","(handler","(if","(let","(middleware/cr","(records,","(respons","(ring/get","50%","::coerc",":coercion",":coercion)",":gen",":gen.",":meta",":opts)]",":respons",":responses)",":result",":wrap.","=>",">","[coercer","[handler]","[method","[respons","[{:key","_]","`reitit.coercion.protocol/coercion`","access","actual","approaches,","basic","below","better.","closur","code","code,","coerc","coercer","coercion","compil","creation","data","data,","decid","defin","demonstr","dynam","easi","easier","effect","enabl","enforc","etc.)","exact","expect","extend","extens","extract","fast","faster","function","gen","handler","hook","inform","instead","it?","itself.","know","less","link","local","lookup","match","meta","meta,","method","middlewar","middleware.","middleware/interceptor","mount","mount.\"","much","naiv","nil,","normal","nothing.\"","opt","opts)]","opts]}","otherwis","pass","perf","pluggabl","pre","processing.","provid","raise))))))","raise)))))))}))","raise]","reason","reasoning:","record","reitit.ring.coercion:","relev","request","request)","request)))","request.","requir","respond","respons","response))","response)))","responses)","return","ring","role","rout","router","runtim","shape","still,","system.","tests.","time.","to,","transform","twice","two","type","unmount","us","version","via","want,","way","wrap","wrap.","written","yield","{:name"],"performance.html":["\"/auth/login\")))","\"/workspace/1/1\")))","'[criterium.cor","'[reitit.cor","(cc/quick","(def","(dotim","(matches,","(micro","(r/match","(r/router","(requir",")benchmark","1.4m","100","1000]","18x","2013","286m","3","3.488297","692.905995",":",":a",":auth/login]",":auth/recovery]",":mix",":request",":workspace/page]]))",";;","=>",">","[\"/auth/recovery/token/:token\"","[\"/workspace/:project/:page\"","[[\"/auth/login\"","[_","abstract","add","adopt","against","ahead","algorithm","algorithms,","alreadi","also,","alway","apis.","avoid","base","baselin","be","bench","bide","both","box","cc])","chang","clojur","clojure(script),","collect","compar","conflict","created,","currently,","details.","differ","different.","disabl","don't","easily,","enabl","ensur","even","exampl","example,","execut","fast","fast.","faster","faster.","featur","first","flatten","found,","function","given","go.","good?","great","guid","httprouter","immut","inlin","interest","intern","it'","it.","jvm","languages,","late","lib","librari","libraries.","libs.","lie","life","linear","long","look","lookup","macbook","magnitud","make","manag","mani","map","match","match,","mean","measur","method","microbenchmarks,","middleware,","mix","more","mostli","much","multimethod","multipl","mutabl","naiv","new","non","ok","ops/sec","optim","order","origin","out","over","path","pedest","pedestal,","perf","perf.","perform","performance.","performance:","plan","plug","possibl","precompute/compil","pro,","profile:","protocol","public","quick","r])","rational","re","real","realli","record","regress","reitit","relat","resolut","rewritten.","rout","router","router.","routes)","run","same","sampl","scan.","second","see","select","separ","slower","small","subrouter.","subtle,","suite,","taken","test","test?","tests,","thing","time","total","tree","trees,","tri","trie","trust","us","user,","usual","valu","wildcard","without","work.","µs"]},"length":19},"tokenStore":{"root":{"1":{"0":{"0":{"0":{"docs":{},"]":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}},"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"docs":{}},"8":{"docs":{},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},".":{"4":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"8":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},"9":{"docs":{},".":{"0":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"docs":{}}},"docs":{}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"2":{"0":{"0":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},",":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"1":{"3":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"docs":{}},"docs":{}},"8":{"6":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"docs":{}},"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},"}":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}},"3":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"}":{"docs":{},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},".":{"4":{"8":{"8":{"2":{"9":{"7":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"4":{"0":{"3":{"docs":{},",":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567}}}},"docs":{}},"docs":{}},"5":{"0":{"docs":{},"%":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}},"docs":{}},"6":{"9":{"2":{"docs":{},".":{"9":{"0":{"5":{"9":{"9":{"5":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"\"":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},"1":{"2":{"3":{"docs":{},"\"":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"docs":{}}},"4":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}},"docs":{}}},"docs":{}}},"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}},"}":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}},".":{"9":{"docs":{},".":{"0":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"6":{"6":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},",":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}},"}":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}}}}}}},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}},"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}},"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364}},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},"}":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}},"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},")":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"1":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}},"docs":{}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"\"":{"docs":{},"}":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567}}}}}}}}}}}}},"a":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083}}},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"g":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}}}},"#":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"{":{"docs":{},":":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.01529051987767584},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"s":{"docs":{},"{":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}},":":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"[":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"$":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"]":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}}}}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"]":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"{":{"docs":{},":":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"}":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016891891891891893}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}},"d":{"docs":{},"b":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"}":{"docs":{},"}":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}}}},"'":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}}}},"&":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"'":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}},"[":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"u":{"docs":{},"m":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},"(":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01818181818181818}},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}},"i":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"/":{"docs":{},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}}},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.011467889908256881}}}}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}}}},"o":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}}}}},"o":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"b":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"f":{"docs":{},"n":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}},"o":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"j":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}},"m":{"docs":{},"p":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.012121212121212121}}}}}},"q":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"a":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}},"c":{"docs":{},"/":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"n":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.04081632653061224}}}}}}}},"o":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}},"f":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.012121212121212121}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015151515151515152}}}}}}}}},"r":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.027522935779816515},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.025},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.043478260869565216},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014492753623188406},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.016055045871559634},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.023054755043227664},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787}},"e":{"docs":{},"r":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"[":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}}}},"i":{"docs":{},"f":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01440922190201729}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}},"e":{"docs":{},"t":{"docs":{},"!":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},"/":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"?":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}}},"q":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}},"a":{"docs":{},"l":{"docs":{},",":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.011467889908256881},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}},"v":{"docs":{},"i":{"docs":{},"a":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}},"b":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"e":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015151515151515152}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}},"+":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},":":{"docs":{},"i":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"p":{"docs":{},"a":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.01834862385321101}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}},"]":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"}":{"docs":{"./":{"ref":"./","tf":0.009174311926605505}},"]":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"c":{"docs":{},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"d":{"docs":{},"b":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"}":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"e":{"docs":{},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}},"s":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}},"k":{"docs":{},"i":{"docs":{},"k":{"docs":{},"k":{"docs":{},"a":{"docs":{},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"docs":{}}}}}},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"e":{"docs":{},"}":{"docs":{},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"2":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"3":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"docs":{}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"y":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"a":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013761467889908258},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.023054755043227664},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"]":{"docs":{},"]":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}},"p":{"docs":{},"i":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},"]":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}},")":{"docs":{},"]":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}},"r":{"docs":{},"g":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013761467889908258}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"]":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.03546099290780142},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01729106628242075}}},"y":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.011527377521613832}},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012232415902140673},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085}}}},"n":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.012121212121212121}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016891891891891893},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"]":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"e":{"docs":{},"r":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.01834862385321101},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01818181818181818}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}}}}}}}},"x":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.01834862385321101},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}},"e":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"}":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.01529051987767584},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013761467889908258}},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}},"c":{"docs":{},"h":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}},")":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"u":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.01834862385321101},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013761467889908258}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.016055045871559634}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0389908256880734}}}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}}}},"u":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}},"e":{"docs":{},"r":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}}}},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"}":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},"]":{"docs":{},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}},"]":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}},"docs":{}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.022900763358778626}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013761467889908258}}}}}},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549}}}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"y":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}},"e":{"docs":{},"v":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}},"e":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505}}},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"b":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"y":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375}}}},";":{"docs":{"./":{"ref":"./","tf":0.11314984709480122},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.029585798816568046},"basics/router.html":{"ref":"basics/router.html","tf":0.02654867256637168},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.075},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.13043478260869565},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.10135135135135136},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.17391304347826086},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.2545871559633027},"ring/ring.html":{"ref":"ring/ring.html","tf":0.03669724770642202},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},";":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}},">":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.057971014492753624},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01818181818181818},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}},"[":{"0":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}},"1":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}},"docs":{},"\"":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.01775147928994083},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}}}}}}}},":":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"/":{"docs":{},":":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"\"":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.013513513513513514}},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"*":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016891891891891893}}}},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"e":{"docs":{},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},":":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"/":{"docs":{},":":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"docs":{},":":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}},"docs":{}}}}}}}},"[":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.013513513513513514},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"u":{"docs":{},"s":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}},"#":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"[":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"$":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505}}}}}},":":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},"_":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"]":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"i":{"docs":{},"r":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}},":":{"docs":{},":":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{},",":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}},"}":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"p":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"c":{"docs":{},"c":{"docs":{},"]":{"docs":{},"}":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}},"d":{"docs":{},"b":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"p":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},"d":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"]":{"docs":{},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.02654867256637168}},"s":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.035398230088495575}}}}}}}},"]":{"docs":{},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"%":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}}}}}}}}}}}}}}},"#":{"docs":{},"(":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}},"{":{"docs":{},":":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"{":{"docs":{},"{":{"docs":{},":":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"a":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}},"d":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"advanced/":{"ref":"advanced/","tf":10.142857142857142}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"l":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}}}},"i":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"s":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"u":{"docs":{},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"r":{"docs":{},"g":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}},"s":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}}},"s":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"?":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}},"\"":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},".":{"docs":{},"\"":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}},"p":{"docs":{},"h":{"docs":{},"a":{"1":{"7":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"docs":{}},"docs":{}}}},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"s":{"docs":{},"o":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"s":{"docs":{},"k":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}},"b":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}},"g":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/":{"ref":"basics/","tf":0.14285714285714285},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.358333333333333},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.3405797101449273},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012232415902140673},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"i":{"docs":{},"c":{"docs":{"basics/":{"ref":"basics/","tf":10.071428571428571},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"c":{"docs":{},"k":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}},"d":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}},"s":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}},"t":{"docs":{},"a":{"2":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}},"docs":{}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"d":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}},".":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},":":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},"o":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.023054755043227664},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":5.023054755043228},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.03636363636363636}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}},"]":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.024242424242424242}}}}}}},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012232415902140673},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.022900763358778626},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":5.015151515151516}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"d":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}},"s":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},"a":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/":{"ref":"basics/","tf":0.07142857142857142},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":5.036231884057971},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"s":{"docs":{},":":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}},"!":{"docs":{},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"i":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/":{"ref":"advanced/","tf":0.14285714285714285},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":5.020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}},"j":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014492753623188406},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}},"d":{"docs":{},"e":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"s":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}},"l":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"n":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"q":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.035398230088495575},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}},"c":{"docs":{},"]":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.012232415902140673},"basics/":{"ref":"basics/","tf":0.07142857142857142},"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":5.030405405405405},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":3.348600508905852},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.011527377521613832},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},",":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}},":":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},")":{"docs":{},":":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},"i":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"c":{"docs":{},"i":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced/":{"ref":"advanced/","tf":0.14285714285714285},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":5.019607843137255},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.010169491525423728}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":3.348600508905852}}}}}}},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":5.00709219858156},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}},"'":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.010169491525423728}}}}},"c":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"e":{"docs":{},"s":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"b":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}},"e":{"docs":{},"x":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"e":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"c":{"docs":{},"t":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"s":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":5.01418439716312},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.02027027027027027},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"s":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"s":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"t":{"docs":{},"c":{"docs":{},")":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}},".":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"f":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},",":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"l":{"docs":{},"s":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"e":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},"i":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.011467889908256881}},"s":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.05102040816326531},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},".":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.012232415902140673},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/ring.html":{"ref":"ring/ring.html","tf":0.03669724770642202},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}},"s":{"docs":{},".":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"s":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"j":{"docs":{},"u":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"t":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"#":{"docs":{},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.028985507246376812}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"]":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"]":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364}},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}},"\"":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}},")":{"docs":{},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}}}}}}}}}}}}}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014492753623188406}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"]":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}},")":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"n":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"t":{"docs":{"./":{"ref":"./","tf":10.003058103975535}}}}}}}},"?":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"}":{"docs":{},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}},"r":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}}},"f":{"docs":{},"o":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}},"r":{"docs":{},"m":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612}}}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"t":{"docs":{},"'":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}},"?":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.029411764705882353}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"y":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},"s":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}},"t":{"docs":{},"t":{"docs":{},"l":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083}}}}},"n":{"docs":{},"k":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"f":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"e":{"docs":{},"a":{"docs":{},"f":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}}}},"s":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"o":{"docs":{},"g":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}},"o":{"docs":{},"k":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"u":{"docs":{},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"n":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.05},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014492753623188406},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.030303030303030304},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"?":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}},"s":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}},"p":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},".":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}},":":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"n":{"docs":{},"i":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}},"a":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"c":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"g":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"k":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.04081632653061224},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.03058103975535168},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015151515151515152},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},".":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"s":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}},"r":{"docs":{},"g":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}},"e":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}},"a":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/":{"ref":"ring/","tf":0.16666666666666666},"ring/ring.html":{"ref":"ring/ring.html","tf":0.027522935779816515},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":3.402035623409669},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":5.0212121212121215}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}},"]":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"s":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},".":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},"!":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"d":{"docs":{},"e":{"docs":{},"?":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}},".":{"docs":{},"\"":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"s":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014492753623188406},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"w":{"docs":{},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.01834862385321101},"basics/":{"ref":"basics/","tf":0.07142857142857142},"basics/router.html":{"ref":"basics/router.html","tf":0.05309734513274336},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.3840579710144922},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}},"!":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},".":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},"s":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"i":{"docs":{},"v":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.027522935779816515},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.025},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}},":":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}},"c":{"docs":{},"e":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"e":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375}}}},"w":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}},"o":{"docs":{},"n":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"performance.html":{"ref":"performance.html","tf":0.013559322033898305}}},"t":{"docs":{},"e":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"\"":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":5.025936599423631}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"s":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}},"s":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}}}}},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"basics/":{"ref":"basics/","tf":0.07142857142857142},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.023668639053254437},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.433333333333333},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.029411764705882353},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"]":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}}},"s":{"docs":{},"s":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"g":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.022900763358778626}}}},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}},".":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}},",":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"s":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"l":{"docs":{},"n":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}},"e":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"a":{"docs":{},"l":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}},"r":{"docs":{},"f":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.010169491525423728}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"performance.html":{"ref":"performance.html","tf":10.00677966101695}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"o":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"r":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},":":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}}}},"r":{"docs":{},"]":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}},".":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},":":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.021406727828746176},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01440922190201729},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.02727272727272727}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015151515151515152}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}},"}":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"i":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"v":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},"s":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.020172910662824207},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.045454545454545456}},"e":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"s":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}}},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.025},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},":":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"s":{"docs":{},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"l":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}},"a":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/":{"ref":"ring/","tf":10.166666666666666},"ring/ring.html":{"ref":"ring/ring.html","tf":5.021406727828746},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"]":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.01834862385321101},"basics/":{"ref":"basics/","tf":0.35714285714285715},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":5.0828402366863905},"basics/router.html":{"ref":"basics/router.html","tf":0.061946902654867256},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.370833333333333},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.369565217391304},"basics/route_data.html":{"ref":"basics/route_data.html","tf":5.050675675675675},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":5.043478260869565},"advanced/":{"ref":"advanced/","tf":0.14285714285714285},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.11224489795918367},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":5.032110091743119},"ring/ring.html":{"ref":"ring/ring.html","tf":0.021406727828746176},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01440922190201729},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.030303030303030304},"performance.html":{"ref":"performance.html","tf":0.0711864406779661}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.03669724770642202},"basics/":{"ref":"basics/","tf":0.07142857142857142},"basics/router.html":{"ref":"basics/router.html","tf":10.079646017699115},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.05},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.050724637681159424},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.037162162162162164},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.028985507246376812},"advanced/":{"ref":"advanced/","tf":0.2857142857142857},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":5.040816326530612},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":5.137254901960785},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/ring.html":{"ref":"ring/ring.html","tf":5.009174311926605},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.010169491525423728}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}},",":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}},"s":{"docs":{},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085}}},"s":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549}}},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.021739130434782608},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}},")":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},":":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}},",":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}},",":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549}}},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013761467889908258}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},":":{"docs":{"./":{"ref":"./","tf":0.012232415902140673},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}}},"o":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}},"l":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}},"s":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}},":":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}},"]":{"docs":{},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}}}},"a":{"docs":{},"w":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},")":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}}}}},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}},"u":{"docs":{},"n":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}},"d":{"docs":{},"e":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"i":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"e":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"b":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/":{"ref":"basics/","tf":0.07142857142857142},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":5.005917159763314}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"p":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}},"a":{"docs":{},"l":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},"]":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}},"e":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}},"e":{"docs":{},"p":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}},"s":{"docs":{},"t":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549}}}},"u":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"]":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}},"a":{"docs":{},"n":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"o":{"docs":{},"w":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"/":{"docs":{},"*":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.016055045871559634},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01440922190201729}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"e":{"docs":{},"e":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}},"s":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"s":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"]":{"docs":{},")":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"e":{"docs":{},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}}}}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"d":{"docs":{},"o":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},":":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"w":{"docs":{},"o":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}},"n":{"docs":{},":":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}},"r":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"performance.html":{"ref":"performance.html","tf":0.010169491525423728}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.01694915254237288}},"s":{"docs":{},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"?":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.029411764705882353},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.010169491525423728}},"e":{"docs":{},"r":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"d":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}},"m":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"2":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"3":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.023054755043227664},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}},"}":{"docs":{},")":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"h":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"l":{"docs":{},"d":{"docs":{},"s":{"docs":{},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"l":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.023728813559322035}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"y":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"{":{"2":{"0":{"0":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}},"docs":{}},"docs":{}},"docs":{},":":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.013513513513513514}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.03550295857988166},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016891891891891893}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.01775147928994083},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012232415902140673},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.01529051987767584},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016891891891891893},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016891891891891893}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.03546099290780142},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.011527377521613832}}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}},":":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01440922190201729}}}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375}}}},"}":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}},"=":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},">":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.05102040816326531},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"e":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}},"?":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085}}}}},"i":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.04081632653061224},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.035398230088495575},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"s":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}},",":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"m":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"performance.html":{"ref":"performance.html","tf":0.013559322033898305}}},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}},"]":{"docs":{},"}":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.013559322033898305}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.029411764705882353},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.010169491525423728}},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"v":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}},"i":{"docs":{},"a":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"advanced/":{"ref":"advanced/","tf":0.14285714285714285},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.029411764705882353},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":5.004587155963303}}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}},"u":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}},"/":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}}}}}}}},":":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014492753623188406}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.028985507246376812}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"/":{"docs":{},":":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.028985507246376812}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"*":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.028985507246376812}}}}}}}}}}}}}}},"^":{"docs":{},":":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}}},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"s":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"%":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"`":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"`":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}},"y":{"docs":{},")":{"docs":{},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}}},"]":{"docs":{},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"_":{"docs":{},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}},")":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}},"j":{"docs":{},"v":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}},"µ":{"docs":{},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}},"length":1943},"corpusTokens":["\"/\"","\"/\"))","\"/\")))","\"/\"))))","\"/api/admin/db\"})","\"/api/admin/ping\",","\"/api/admin/ping\"})","\"/api/admin/users\"})","\"/api/ipa\")","\"/api/orders/1\")","\"/api/orders/1\"}","\"/api/orders/2\"}","\"/api/orders/:id\"","\"/api/orders/:id\",","\"/api/ping\"","\"/api/ping\")","\"/api/ping\"}","\"/api/ping\"})","\"/api/user/1\"","\"/api/user/1\")","\"/api/user/:id\"","\"/api/user/:id\",","\"/auth/login\")))","\"/favicon.ico\"})","\"/hello\")","\"/ping\"","\"/ping\")","\"/ping\"}","\"/ping\"})","\"/workspace/1/1\")))","\"0.1.0","\"0.1.123\"]","\"0.3.0\"]","\"0.4.0\"]","\"1\"}","\"1\"})","\"1\"}}","\"1.9.0","\"1.9.660\"]","\"a","\"everyth","\"forbidden\"}","\"gener","\"ok\",","\"ok\"}","\"ok\"})","\"ok\"}))","\"pluggabl","\"tenant1\"","#'reitit.core/rout","#(respond","#endpoint{:meta","#match{:templ","#methods{...}","#methods{:ani","#object[...],","#object[...]}","#object[...]},","#object[user$handler]}","#partialmatch{:templ","#{:admin}","#{:admin}}","#{:admin}})","#{:db","#{:id}","#{:id}}","#{route}}","%","%)","%))","%))))","&","'())","'[clojure.set","'[clojure.spec.alpha","'[clojure.spec.test.alpha","'[criterium.cor","'[expound.alpha","'[reitit.cor","'[reitit.middlewar","'[reitit.r","'[reitit.ring.coercion","'[reitit.ring.coercion.spec","'[reitit.spec","'[reitit.spec])","'[spec","'add","'get","(","(*","(*path).","(+","(:api","(:id)","(:request","(?","([\"/api\"","([\"/get","([...","([request","([request]","(and","(api","(app","(blank?","(cat","(cc/quick","(clojure.core/fn","(clojure.core/or","(clojure.spec)","(clojure.spec),","(clojure.spec.alpha/*","(clojure.spec.alpha/?","(clojure.spec.alpha/and","(clojure.spec.alpha/cat","(clojure.spec.alpha/col","(clojure.spec.alpha/nil","(clojure.spec.alpha/or","(clojure.string/blank?","(clojure.string/start","(coerc","(comp","(compiled)","(condp","(conj","(constantli","(cqr","(def","(default","(defn","(defprotocol","(dotim","(effect","(fn","(fnil","(for","(handler","(if","(let","(match","(matches,","(micro","(middleware/cr","(name","(nilabl","(non","(not","(onli","(option","(optional,recommend","(or","(r/match","(r/partial","(r/rout","(r/router","(recommend","(records,","(reitit/match","(reitit/routes))","(requir","(respons","(reverse)","(ring/get","(ring/r","(ring/rout","(rout","(router","(s/def","(s/explain","(s/key","(s/valid?","(seq","(set!","(set/subset?","(some","(st/spec","(start","(stest/instru","(str","(updat","(via","(wrap",")benchmark","...","...])","/","/:user","/:version/statu","/api/user/:id:","/bulk/:bulk","/public/*path","1","1,","1.4m","1.8","1.9.0","100","1000]","18x","2","200","200,","2013","286m","2})","2},","2}})","3","3.488297","3}}","403,","50%","692.905995",":","::acc","::admin]","::admin}]","::coerc","::db]","::db]]","::db]}","::db}]","::dev","::i","::ipa)","::kikka)","::order","::ping","::ping)","::ping))","::ping]","::ping]]","::ping}","::ping}]","::ping}]]","::pong}]]","::request","::request}","::respons","::response}}","::role","::roles)]","::singl","::spec/raw","::tenant1])","::total","::user","::user)","::user))","::user]]]))","::users]","::users}","::wrap2","::wrap3","::x","::y]))",":a",":admin",":admin]]}",":admin}",":api",":api))})",":api)]}",":api]]",":api]]}",":append,",":arg",":auth/login]",":auth/recovery]",":bodi",":body,",":body}",":child",":clojure.spec.alpha/spec",":clojure.spec.alpha/valu",":coerc",":coercion",":coercion)",":command",":compil",":conflict",":db",":db]]",":default",":delet",":delete,",":delete]]",":descript",":dev",":displac",":expand",":form,",":gen",":gen.",":get",":get,",":handler",":handler)})",":handler]}",":head,",":header",":into",":let",":linear",":lookup",":meta",":middlewar",":mix",":name",":options,",":opts)]",":param",":paramet",":parameters.",":parameters}]",":patch,",":path",":path)",":path.",":path]",":post",":post)]]",":prefix",":prepend,",":put,",":put.",":queri",":query,",":reitit.spec/arg)",":reitit.spec/path",":reitit.spec/path:",":reitit.spec/raw",":replac",":req",":request",":requir",":respons",":responses)",":result",":role",":rout",":router",":schema",":uri",":user/ord",":user/ping}",":user/ping}]",":user/tenant1",":user/tenant1]",":user/user]",":user/user}",":user/user},",":user/user}]]",":workspace/page]]))",":wrap",":wrap.",":y",";",";;","=","=>",">","?arg","[\"\"","[\"/:user","[\"/:version/status\"]])","[\"/add","[\"/admin\"","[\"/api\"","[\"/api/:version/ping\"]]","[\"/api/admin/db\"","[\"/api/admin/users\"","[\"/api/orders/:id\"","[\"/api/ping\"","[\"/api/user/:id\"","[\"/auth/recovery/token/:token\"","[\"/bulk/:bulk","[\"/db\"","[\"/dev","[\"/ping\"","[\"/ping\"]","[\"/pong\"","[\"/pong\"]]","[\"/public\"","[\"/public/*path\"]","[\"/user/:id\"","[\"/users\"","[\"/workspace/:project/:page\"","[\"pong\"]]])","[\"tenant1\"","[#(wrap","[%]","[...","[0]","[1]","[::acc]}]","[::admin],","[::admin]}","[::api","[::api]","[::api]}","[::db]","[::roles]","[::total]))","[::x","[:api","[:command","[:rout","[:routes]","[:user/p","[[\"/api\"","[[\"/api/admin\"","[[\"/api/ping\"","[[\"/auth/login\"","[[\"/ping\"","[[\"/ping\"]","[[\"/users/:us","[[#object[user$wrap]","[[:queri","[[type","[[wrap","[])","[]))","[]}}]]","[_","[_]","[action","[add","[clojur","[coercer","[coercion/gen","[expound","[get","[handler","[handler]","[interceptor]}}])","[method","[metosin/reitit","[metosin/spec","[org.clojure/clojur","[org.clojure/clojurescript","[org.clojure/spec.alpha","[path","[request]","[requir","[respons","[thi","[this])","[wrap","[x","[{:key","[{{{:key","^:replac","^^^^^^","_]","`reitit.coercion.protocol/coercion`","`reitit/router)","abstract","acc","access","accumul","action","actual","ad","adapt","add","admin}}]]","admin}}]]]))","adopt","advanc","against","ahead","algorithm","algorithms,","allow","alpha17\"]","alreadi","also,","alway","anonym","api.","apis.","app","app:","appli","applic","approaches,","arg","arg\"","arg.\"","args.","args?","argument","arguments.","arguments:","ariti","ask","async","at:","attacht","author","avail","avoid","back","base","baselin","basic","be","befor","behavior","behind","below","bench","best","beta2\"]","better.","bi","bide","bootstrapping:","both","box","build","built","call","callback.","called.","case","catch","cc])","chain","chang","cheng","child","class","client","clojur","clojure(script)","clojure(script),","clojure.core/string?","clojure.lang.exceptioninfo:","clojure.spec","clojurescript,","closur","co","code","code,","coerc","coercer","coercion","coercion,","coercion.","coercion/gen","coercion])","colect","collect","compar","compil","compilation,","compiled)","compiled,","compiler,","compilerexcept","compojur","components.","compos","configur","conflicit","conflict","conflicts!)","conflicts.","conflicts:","conform","conforming,","conj","contain","correctly:","cqr","creat","created,","created.","creation","currently,","custom","data","data,","data.","data:","db","db)","decid","default","default,","defin","defined):","defined,","defined.","definit","demonstr","depend","dependeci","descript","details.","detect","dev","develop","differ","different.","direct","disabl","doc","doesn't","don't","done","done:","driven","dynam","easi","easier","easily,","effec","effect","element","else\")","enabl","enforc","ensur","error","especi","etc).","etc.)","even","ex","exact","exampl","example,","except","exceptioninfo","execut","exist","expand","expans","expect","explicit","expound","expound/printer)","expound])","extend","extens","extract","fail","fails,","fals","false)","fast","fast,","fast.","faster","faster.","fastest","featur","first","flatten","flattened:","follow","following:","format","found,","found.","function","function,","function.","functions,","futur","gen","gener","get","given","go.","go:","good,","good?","great","guard","guid","handl","handler","handler:","handler]","handler])))","handler]]]]","handlers,","handlers.","handler}])))","handler}]]])))","handler}}]]])))","hash","heart","higher","higher)","hoc","hook","hooks.","httprouter","https://github.com/julienschmidt/httprouter#how","id","id\"]","id)","id))","id)))","id))))","id/ord","id/orders\"]","id]","id]]))","identity]","identity]}","identity}}]]","identity}}]]))","id}","id},","ignored.","immut","implemen","implement","implementation.","in:","info","inform","information:","initi","inject","inlin","inspect","instanc","instead","instrument","int?)","int?))","int?,","int?}}","int?}}}","interceptor","interceptor))","interceptor]","interest","intern","interpet","introduc","introduct","it'","it.","it?","itself.","jvm","key","key,","keys:","keyword","kind","know","languages,","late","later","leaf","less","level","lib","librari","libraries.","library.","libs)","libs.","lie","life","linear","link","list","littl","local","log","long","look","lookup","lookup.","macbook","magnitud","make","manag","mani","manual","map","map,","map.","map:","match","match)","match,","match.","match?","matched,","matches,","mean","measur","merg","merge.","message.","meta","meta,","method","method.","methods.","microbenchmarks,","middlewar","middleware,","middleware.","middleware/interceptor","middleware:","middleware])","miss","mix","mode?","mode?]","more","more!","more.","mostli","mount","mount.\"","much","multimethod","multipl","mutabl","mw,","naiv","name","name!","name.","name]","names:","namespac","need","nest","new","nice","nil","nil,","nil:","nil]","node.j","non","normal","note","note:","nothing.\"","ok","on","ops/sec","opt","optim","optin","option","option,","options.","opts)]","opts]}","order","order\"","order]]","order]}}])","origin","otherwis","out","out*","over","overrid","overridden","param","paramet","parameter:","parameters.","parameters/gen","parameters:","params]))","partialmatch","partialmatch,","pass","path","path])","pedest","pedestal,","penalty.","perf","perf.","perform","performance.","performance:","plain","plan","plug","pluggabl","po","possibl","pre","precompute/compil","predicate:","pretti","principl","print","println","pro,","problems.","processing,","processing.","produc","profile:","programmatically:","project:","protocol","protocol)","protocol,","protocol.","protocol:","provid","public","purpose:","qualifi","quick","r])","raise))))))","raise)))))))}))","raise]","rational","raw","re","readi","real","realli","reason","reasoning:","record","record:","records,","recurs","regress","reitit","reitit,","reitit.core/expand","reitit.core/expand)","reitit.core/match","reitit.core/rout","reitit.core/router:","reitit.core/throw","reitit.middleware/intomiddlewar","reitit.ring.coercion.protocol/coercion","reitit.ring.coercion.spec/speccoercion","reitit.ring.coercion/gen","reitit.ring.coercion:","reitit.ring.middleware/cr","reitit.ring.middleware/middlewar","reitit.ring/get","reitit.ring/rout","reitit.spec","reitit/conflict","reitit/expand","relat","relev","request","request)","request)))","request)))))","request.","request}]","requir","required)","resolut","resolv","respond","respons","response))","response)))","response]","responses)","rest","result","results:","resut","retriev","return","returned:","revers","rewritten.","ring","ring,","ring])","role","roles)))","roles:","roles]}})))","root","rout","route))))","route,","route.","route:","router","router)","router,","router.","router:","routers.","routes)","routes):","routes,","routes.","routes:","routing)","routing,","routing.","routing:","run","runtim","s/*explain","s])","same","sampl","satisfi","scan.","scene","second","see","select","separ","sequenti","sequential)","set","set,","set])","sever","shape","ship","shipped,","show","side","simpl","singl","slower","small","snapshot\"]","someth","sources.","spec","spec/coercion}})))","spec:","spec])","special","specs.","st])","start","static","statu","step","stest])","still,","store","str)})","string","stuctur","submap","submap.","subrouter.","subtle,","succeeds,","suitabl","suite,","support","swagger:","syntax","system.","take","taken","target","test","test?","tests,","tests.","them.","thing","third","throw","thrown.","thrown:","time","time.","to,","to:","todo","todo:","togeth","too.","tool","tools\"","tools.cor","tools.core/spec.","tools])])","top","total","toward","transform","tree","tree:","trees,","tri","trie","true","trust","twice","two","type","un","under","understood","unmount","unreachanle.","until","unwrap","us","used)","used.","user","user\"","user,","user]","user]}}]","usual","usually,","val:","valid","valu","values.","vector","vector.","version","version:","via","want,","way","whole","wildcard","with?","without","work","work.","worlds.","wrap","wrap.","wrap2","wrap3","wrap}))","written","x","y)}})}}]]","y]}","yield","zero","{200","{::role","{:bodi","{:conflict","{:get","{:handler","{:id","{:interceptor","{:meta","{:middlewar","{:name","{:paramet","{:post","{:request","{:role","{:schema","{:statu","{:total","{:x","{method","{rout","{}","µs"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"Introduction","keywords":"","body":"Introduction\nReitit is a small Clojure(Script) library for data-driven routing.\n\nSimple data-driven route syntax\nRoute conflict resolution\nFirst-class route meta-data\nBi-directional routing\nPluggable coercion (clojure.spec)\nsupports both Middleware & Interceptors\nExtendable\nFast\n\nTo use Reitit, add the following dependecy to your project:\n[metosin/reitit \"0.1.0-SNAPSHOT\"]\n\nExamples\nSimple router\n(require '[reitit.core :as r])\n\n(def router\n  (r/router\n    [[\"/api/ping\" ::ping]\n     [\"/api/orders/:id\" ::order-by-id]]))\n\nRouting:\n(r/match-by-path router \"/api/ipa\")\n; nil\n\n(r/match-by-path router \"/api/ping\")\n; #Match{:template \"/api/ping\"\n;        :meta {:name ::ping}\n;        :result nil\n;        :params {}\n;        :path \"/api/ping\"}\n\n(r/match-by-path router \"/api/orders/1\")\n; #Match{:template \"/api/orders/:id\"\n;        :meta {:name ::order-by-id}\n;        :result nil\n;        :params {:id \"1\"}\n;        :path \"/api/orders/1\"}\n\nReverse-routing:\n(r/match-by-name router ::ipa)\n; nil\n\n(r/match-by-name router ::ping)\n; #Match{:template \"/api/ping\"\n;        :meta {:name ::ping}\n;        :result nil\n;        :params {}\n;        :path \"/api/ping\"}\n\n(r/match-by-name router ::order-by-id)\n; #PartialMatch{:template \"/api/orders/:id\"\n;               :meta {:name :user/order-by-id}\n;               :result nil\n;               :params nil\n;               :required #{:id}}\n\n(r/partial-match? (r/match-by-name router ::order-by-id))\n; true\n\n(r/match-by-name router ::order-by-id {:id 2})\n; #Match{:template \"/api/orders/:id\",\n;        :meta {:name ::order-by-id},\n;        :result nil,\n;        :params {:id 2},\n;        :path \"/api/orders/2\"}\n\nRing-router\nRing-router adds support for :handler functions, :middleware and routing based on :request-method. It also supports pluggable parameter coercion (clojure.spec), data-driven middleware, route and middleware compilation, dynamic extensions and more.\n(require '[reitit.ring :as ring])\n\n(def handler [_]\n  {:status 200, :body \"ok\"})\n\n(defn wrap [handler id]\n  (fn [request]\n    (update (handler request) :wrap (fnil conj '()) id)))\n\n(def app\n  (ring/ring-handler\n    (ring/router\n      [\"/api\" {:middleware [[wrap :api]]}\n       [\"/ping\" {:get handler\n                 :name ::ping}]\n       [\"/admin\" {:middleware [[wrap :admin]]}\n        [\"/users\" {:get handler\n                   :post handler}]]])))\n\nRouting:\n(app {:request-method :get, :uri \"/api/admin/users\"})\n; {:status 200, :body \"ok\", :wrap (:api :admin}\n\n(app {:request-method :put, :uri \"/api/admin/users\"})\n; nil\n\nReverse-routing:\n(require '[reitit.core :as r])\n\n(-> app (ring/get-router) (r/match-by-name ::ping))\n; #Match{:template \"/api/ping\"\n;        :meta {:middleware [[#object[user$wrap] :api]]\n;               :get {:handler #object[user$handler]}\n;        :name ::ping}\n;        :result #Methods{...}\n;        :params nil\n;        :path \"/api/ping\"}\n\n"},"basics/":{"url":"basics/","title":"Basics","keywords":"","body":"Basics\n\nRoute syntax\nRouter\nPath-based Routing\nName-based Routing\nRoute data\nRoute conflicts\n\n"},"basics/route_syntax.html":{"url":"basics/route_syntax.html","title":"Route syntax","keywords":"","body":"Route Syntax\nRoutes are defined as vectors of String path and optional (non-sequential) route argument child routes.\nRoutes can be wrapped in vectors and lists and nil routes are ignored.\nPaths can have path-parameters (:id) or catch-all-parameters (*path).\nExamples\nSimple route:\n[\"/ping\"]\n\nTwo routes:\n[[\"/ping\"]\n [\"/pong\"]]\n\nRoutes with route arguments:\n[[\"/ping\" ::ping]\n [\"/pong\" {:name ::pong}]]\n\nRoutes with path parameters:\n[[\"/users/:user-id\"]\n [\"/api/:version/ping\"]]\n\nRoute with catch-all parameter:\n[\"/public/*path\"]\n\nNested routes:\n[\"/api\"\n [\"/admin\" {:middleware [::admin]}\n  [\"\" ::admin]\n  [\"/db\" ::db]]\n [\"/ping\" ::ping]]\n\nSame routes flattened:\n[[\"/api/admin\" {:middleware [::admin], :name ::admin}]\n [\"/api/admin/db\" {:middleware [::admin], :name ::db}]\n [\"/api/ping\" {:name ::ping}]]\n\nGenerating routes\nAs routes are just data, it's easy to create them programmatically:\n(defn cqrs-routes [actions dev-mode?]\n  [\"/api\" {:interceptors [::api ::db]}\n   (for [[type interceptor] actions\n         :let [path (str \"/\" (name interceptor))\n               method (condp = type\n                        :query :get\n                        :command :post)]]\n     [path {method {:interceptors [interceptor]}}])\n   (if dev-mode? [\"/dev-tools\" ::dev-tools])])\n\n(cqrs-routes\n  [[:query   'get-user]\n   [:command 'add-user]\n   [:command 'add-order]]\n  false)\n; [\"/api\" {:interceptors [::api ::db]}\n;  ([\"/get-user\" {:get {:interceptors [get-user]}}]\n;   [\"/add-user\" {:post {:interceptors [add-user]}}]\n;   [\"/add-order\" {:post {:interceptors [add-order]}}])\n;  nil]\n\n"},"basics/router.html":{"url":"basics/router.html","title":"Router","keywords":"","body":"Router\nRoutes are just data and for routing, we need a router instance satisfying the reitit.core/Router protocol. Routers are created with reitit.core/router function, taking the raw routes and optionally an options map.\nThe Router protocol:\n(defprotocol Router\n  (router-name [this])\n  (routes [this])\n  (options [this])\n  (route-names [this])\n  (match-by-path [this path])\n  (match-by-name [this name] [this name params]))\n\nCreating a router:\n(require '[reitit.core :as r])\n\n(def router\n  (r/router\n    [[\"/api\"\n      [\"/ping\" ::ping]\n      [\"/user/:id\" ::user]]]))\n\nName of the created router:\n(r/router-name router)\n; :mixed-router\n\nThe flattened route tree:\n(r/routes router)\n; [[\"/api/ping\" {:name :user/ping}]\n;  [\"/api/user/:id\" {:name :user/user}]]\n\nBehind the scenes\nWhen router is created, the following steps are done:\n\nroute tree is flattened\nroute arguments are expanded (via reitit.core/Expand protocol) and optionally coerced\nroute conflicts are resolved\nactual router implementation is selected and created\noptionally route meta-data gets compiled\n\n"},"basics/path_based_routing.html":{"url":"basics/path_based_routing.html","title":"Path-based Routing","keywords":"","body":"Path-based routing\nPath-based routing is done using the reitit.core/match-by-path function. It takes the router and path as arguments and returns one of the following:\n\nnil, no match\nPartialMatch, path matched, missing path-parameters (only in reverse-routing)\nMatch, exact match\n\nGiven a router:\n(require '[reitit.core :as r])\n\n(def router\n  (r/router\n    [[\"/api\"\n      [\"/ping\" ::ping]\n      [\"/user/:id\" ::user]]]))\n\nNo match returns nil:\n(r/match-by-path router \"/hello\")\n; nil\n\nMatch provides the route information:\n(r/match-by-path router \"/api/user/1\")\n; #Match{:template \"/api/user/:id\"\n;        :meta {:name :user/user}\n;        :path \"/api/user/1\"\n;        :result nil\n;        :params {:id \"1\"}}\n\n"},"basics/name_based_routing.html":{"url":"basics/name_based_routing.html","title":"Name-based Routing","keywords":"","body":"Name-based (reverse) routing\nAll routes which have :name route data defined, can also be matched by name.\nGiven a router:\n(require '[reitit.core :as r])\n\n(def router\n  (r/router\n    [[\"/api\"\n      [\"/ping\" ::ping]\n      [\"/user/:id\" ::user]]]))\n\nListing all route names:\n(r/route-names router)\n; [:user/ping :user/user]\n\nNo match returns nil:\n(r/match-by-name router ::kikka)\nnil\n\nMatching a route:\n(r/match-by-name router ::ping)\n; #Match{:template \"/api/ping\"\n;        :meta {:name :user/ping}\n;        :result nil\n;        :params {}\n;        :path \"/api/ping\"}\n\nIf not all path-parameters are set, a PartialMatch is returned:\n(r/match-by-name router ::user)\n; #PartialMatch{:template \"/api/user/:id\",\n;               :meta {:name :user/user},\n;               :result nil,\n;               :params nil,\n;               :required #{:id}}\n\n(r/partial-match? (r/match-by-name router ::user))\n; true\n\nWith provided path-parameters:\n(r/match-by-name router ::user {:id \"1\"})\n; #Match{:template \"/api/user/:id\"\n;        :meta {:name :user/user}\n;        :path \"/api/user/1\"\n;        :result nil\n;        :params {:id \"1\"}}\n\nThere is also a exception throwing version:\n(r/match-by-name! router ::user)\n; ExceptionInfo missing path-params for route /api/user/:id: #{:id}\n\n"},"basics/route_data.html":{"url":"basics/route_data.html","title":"Route data","keywords":"","body":"Route data\nRoute data is the heart of this library. Routes can have any data attachted to them. Data is interpeted either by the client application or the Router via it's :coerce and :compile hooks. This enables  co-existence of both adaptive and principled components.\nRoutes can have a non-sequential route argument that is expanded into route data map when a router is created.\n(require '[reitit.core :as r])\n\n(def router\n  (r/router\n    [[\"/ping\" ::ping]\n     [\"/pong\" identity]\n     [\"/users\" {:get {:roles #{:admin}\n                      :handler identity}}]]))\n\nThe expanded route data can be retrieved from a router with routes and is returned with match-by-path and match-by-name in case of a route match.\n(r/routes router)\n; [[\"/ping\" {:name :user/ping}]\n;  [\"/pong\" {:handler identity]}\n;  [\"/users\" {:get {:roles #{:admin}\n;                   :handler identity}}]]\n\n(r/match-by-path router \"/ping\")\n; #Match{:template \"/ping\"\n;        :meta {:name :user/ping}\n;        :result nil\n;        :params {}\n;        :path \"/ping\"}\n\n(r/match-by-name router ::ping)\n; #Match{:template \"/ping\"\n;        :meta {:name :user/ping}\n;        :result nil\n;        :params {}\n;        :path \"/ping\"}\n\nNested route data\nFor nested route trees, route data is accumulated recursively from root towards leafs using meta-merge. Default behavior for colections is :append, but this can be overridden to :prepend, :replace or :displace using the target meta-data.\nAn example router with nested data:\n(def router\n  (r/router\n    [\"/api\" {:interceptors [::api]}\n     [\"/ping\" ::ping]\n     [\"/admin\" {:roles #{:admin}}\n      [\"/users\" ::users]\n      [\"/db\" {:interceptors [::db]\n              :roles ^:replace #{:db-admin}}]]]))\n\nResolved route tree:\n(r/routes router)\n; [[\"/api/ping\" {:interceptors [::api]\n;                :name :user/ping}]\n;  [\"/api/admin/users\" {:interceptors [::api]\n;                       :roles #{:admin}\n;                       :name ::users} nil]\n;  [\"/api/admin/db\" {:interceptors [::api ::db]\n;                    :roles #{:db-admin}}]]\n\nExpansion\nBy default, reitit/Expand protocol is used to expand the route arguments. It expands keywords into :name and functions into :handler key in the route data map. It's easy to add custom expanders and one can chenge the whole expand implementation via router options.\n(require '[reitit.core :as r])\n\n(def router\n  (r/router\n    [[\"/ping\" ::ping]\n     [\"/pong\" identity]\n     [\"/users\" {:get {:roles #{:admin}\n                      :handler identity}}]]))\n\n(r/routes router)\n; [[\"/ping\" {:name :user/ping}]\n;  [\"/pong\" {:handler identity]}\n;  [\"/users\" {:get {:roles #{:admin}\n;                   :handler identity}}]]\n\n(r/match-by-path router \"/ping\")\n; #Match{:template \"/ping\"\n;        :meta {:name :user/ping}\n;        :result nil\n;        :params {}\n;        :path \"/ping\"}\n\n"},"basics/route_conflicts.html":{"url":"basics/route_conflicts.html","title":"Route conflicts","keywords":"","body":"Route conflicts\nMany routing libraries allow multiple matches for a single path lookup. Usually, the first match is used and the rest are effecively unreachanle. This is not good, especially if route tree is merged from multiple sources.\nReitit resolves this by running explicit conflicit resolution when a router is called. Conflicting routes are passed into a :conflicts callback. Default implementation throws ex-info with a descriptive message.\nExamples router with conflicting routes:\n(require '[reitit.core :as r])\n\n(def routes\n  [[\"/ping\"]\n   [\"/:user-id/orders\"]\n   [\"/bulk/:bulk-id\"]\n   [\"/public/*path\"]\n   [\"/:version/status\"]])\n\nBy default, ExceptionInfo is thrown:\n(r/router routes)\n; CompilerException clojure.lang.ExceptionInfo: Router contains conflicting routes:\n;\n;    /:user-id/orders\n; -> /public/*path\n; -> /bulk/:bulk-id\n;\n;    /bulk/:bulk-id\n; -> /:version/status\n;\n;    /public/*path\n; -> /:version/status\n;\n\nJust logging the conflicts:\n(r/router\n  routes\n  {:conflicts (comp println reitit/conflicts-str)})\n; Router contains conflicting routes:\n;\n;    /:user-id/orders\n; -> /public/*path\n; -> /bulk/:bulk-id\n;\n;    /bulk/:bulk-id\n; -> /:version/status\n;\n;    /public/*path\n; -> /:version/status\n;\n\n"},"advanced/":{"url":"advanced/","title":"Advanced","keywords":"","body":"Advanced\n\nConfiguring routers\nDifferent Routers\nRoute Validation\n\n"},"advanced/configuring_routers.html":{"url":"advanced/configuring_routers.html","title":"Configuring routers","keywords":"","body":"Configuring Routers\nRouters can be configured via options. Options allow things like clojure.spec validation for meta-data and fast, compiled handlers. The following options are available for the reitit.core/router:\n\n\n\nkey\ndescription\n\n\n\n\n:path\nBase-path for routes\n\n\n:routes\nInitial resolved routes (default [])\n\n\n:meta\nInitial expanded route-meta vector (default [])\n\n\n:expand\nFunction of arg opts => meta to expand route arg to route meta-data (default reitit.core/expand)\n\n\n:coerce\nFunction of route opts => route to coerce resolved route, can throw or return nil\n\n\n:compile\nFunction of route opts => result to compile a route handler\n\n\n:conflicts\nFunction of {route #{route}} => side-effect to handle conflicting routes (default reitit.core/throw-on-conflicts!)\n\n\n:router\nFunction of routes opts => router to override the actual router implementation\n\n\n\n"},"advanced/different_routers.html":{"url":"advanced/different_routers.html","title":"Different Routers","keywords":"","body":"Different Routers\nReitit ships with several different implementations for the Router protocol, originally based on the Pedestal implementation. router selects the most suitable implementation by inspecting the expanded routes. The implementation can be set manually using :router option, see configuring routers.\n\n\n\nrouter\ndescription\n\n\n\n\n:linear-router\nMatches the routes one-by-one starting from the top until a match is found. Works with any kind of routes.\n\n\n:lookup-router\nFast router, uses hash-lookup to resolve the route. Valid if no paths have path or catch-all parameters.\n\n\n:mixed-router\nCreates internally a :linear-router and a :lookup-router and used them to effectively get best-of-both-worlds. Valid if there are no Route conflicts.\n\n\n::single-static-path-router\nFastest possible router: valid only if there is one static route.\n\n\n:prefix-tree-router\nTODO: https://github.com/julienschmidt/httprouter#how-does-it-work\n\n\n\nThe router name can be asked from the router\n(r/router-name router)\n; :mixed-router\n\n"},"advanced/route_validation.html":{"url":"advanced/route_validation.html","title":"Route Validation","keywords":"","body":"Route validation\nNamespace reitit.spec contains clojure.spec definitions for raw-routes, routes, router and router options.\nNOTE: Use of specs requires to use one of the following:\n\n[org.clojure/clojurescript \"1.9.660\"] (or higher)\n[org.clojure/clojure \"1.9.0-beta2\"] (or higher)\n[clojure-future-spec \"1.9.0-alpha17\"] (if Clojure 1.8 is used)\n\nExample\n(require '[clojure.spec.alpha :as s])\n(require '[reitit.spec :as spec])\n\n(def routes-from-db\n  [\"tenant1\" ::tenant1])\n\n(s/valid? ::spec/raw-routes routes-from-db)\n; false\n\n(s/explain ::spec/raw-routes routes-from-db)\n; In: [0] val: \"tenant1\" fails spec: :reitit.spec/path at: [:route :path] predicate: (or (blank? %) (starts-with? % \"/\"))\n; In: [0] val: \"tenant1\" fails spec: :reitit.spec/raw-route at: [:routes] predicate: (cat :path :reitit.spec/path :arg (? :reitit.spec/arg) :childs (* (and (nilable :reitit.spec/raw-route))))\n; In: [1] val: :user/tenant1 fails spec: :reitit.spec/raw-route at: [:routes] predicate: (cat :path :reitit.spec/path :arg (? :reitit.spec/arg) :childs (* (and (nilable :reitit.spec/raw-route))))\n; :clojure.spec.alpha/spec  :reitit.spec/raw-routes\n; :clojure.spec.alpha/value  [\"tenant1\" :user/tenant1]\n\nAt development time\nreitit.core/router can be instrumented and use something like expound to pretty-print the spec problems.\nFirst add a :dev dependency to:\n[expound \"0.3.0\"] ; or higher\n\nSome bootstrapping:\n(require '[clojure.spec.test.alpha :as stest])\n(require '[expound.alpha :as expound])\n(require '[clojure.spec.alpha :as s])\n(require '[reitit.spec])\n\n(stest/instrument `reitit/router)\n(set! s/*explain-out* expound/printer)\n\nAnd we are ready to go:\n(require '[reitit.core :as r])\n\n(r/router\n  [\"/api\"\n   [\"/public\"\n    [\"/ping\"]\n    [\"pong\"]]])\n\n; CompilerException clojure.lang.ExceptionInfo: Call to #'reitit.core/router did not conform to spec:\n;\n; -- Spec failed --------------------\n;\n; Function arguments\n;\n; ([\"/api\" ...])\n;   ^^^^^^\n;\n;     should satisfy\n;\n; (clojure.spec.alpha/cat\n;   :path\n;   :reitit.spec/path\n;   :arg\n;   (clojure.spec.alpha/? :reitit.spec/arg)\n;   :childs\n;   (clojure.spec.alpha/*\n;     (clojure.spec.alpha/and\n;       (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n;\n; or\n;\n; (clojure.spec.alpha/cat\n;   :path\n;   :reitit.spec/path\n;   :arg\n;   (clojure.spec.alpha/? :reitit.spec/arg)\n;   :childs\n;   (clojure.spec.alpha/*\n;     (clojure.spec.alpha/and\n;       (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n;\n; -- Relevant specs -------\n;\n; :reitit.spec/raw-route:\n; (clojure.spec.alpha/cat\n;   :path\n;   :reitit.spec/path\n;   :arg\n;   (clojure.spec.alpha/? :reitit.spec/arg)\n;   :childs\n;   (clojure.spec.alpha/*\n;     (clojure.spec.alpha/and\n;       (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n; :reitit.spec/raw-routes:\n; (clojure.spec.alpha/or\n;   :route\n;   :reitit.spec/raw-route\n;   :routes\n;   (clojure.spec.alpha/coll-of :reitit.spec/raw-route :into []))\n;\n; -- Spec failed --------------------\n;\n; Function arguments\n;\n; ([... [... ... [\"pong\"]]])\n;                 ^^^^^^\n;\n;     should satisfy\n;\n; (fn\n;   [%]\n;   (or\n;     (clojure.string/blank? %)\n;     (clojure.string/starts-with? % \"/\")))\n;\n; or\n;\n; (fn\n;   [%]\n;   (or\n;     (clojure.string/blank? %)\n;     (clojure.string/starts-with? % \"/\")))\n;\n; -- Relevant specs -------\n;\n; :reitit.spec/path:\n; (clojure.spec.alpha/and\n;   clojure.core/string?\n;   (clojure.core/fn\n;     [%]\n;     (clojure.core/or\n;       (clojure.string/blank? %)\n;       (clojure.string/starts-with? % \"/\"))))\n; :reitit.spec/raw-route:\n; (clojure.spec.alpha/cat\n;   :path\n;   :reitit.spec/path\n;   :arg\n;   (clojure.spec.alpha/? :reitit.spec/arg)\n;   :childs\n;   (clojure.spec.alpha/*\n;     (clojure.spec.alpha/and\n;       (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n; :reitit.spec/raw-routes:\n; (clojure.spec.alpha/or\n;   :route\n;   :reitit.spec/raw-route\n;   :routes\n;   (clojure.spec.alpha/coll-of :reitit.spec/raw-route :into []))\n;\n; -------------------------\n; Detected 2 errors\n\nValidating route data\nTODO\n"},"ring/":{"url":"ring/","title":"Ring","keywords":"","body":"Ring\n\nRing-router\nDynamic extensions\nData-driven Middleware\nParameter coercion\nCompiling middleware\n\n"},"ring/ring.html":{"url":"ring/ring.html","title":"Ring-router","keywords":"","body":"Ring Router\nRing-router adds support for handlers, middleware and routing based on :request-method. Ring-router is created with reitit.ring/router function. It runs a custom route compiler, creating a optimized stucture for handling route matches, with compiled middleware chain & handlers for all request methods. It also ensures that all routes have a :handler defined.\nSimple Ring app:\n(require '[reitit.ring :as ring])\n\n(defn handler [_]\n  {:status 200, :body \"ok\"})\n\n(def app\n  (ring/ring-handler\n    (ring/router\n      [\"/ping\" handler])))\n\nApplying the handler:\n(app {:request-method :get, :uri \"/favicon.ico\"})\n; nil\n\n(app {:request-method :get, :uri \"/ping\"})\n; {:status 200, :body \"ok\"}\n\nThe expanded routes shows the compilation results:\n(-> app (ring/get-router) (reitit/routes))\n; [[\"/ping\"\n;   {:handler #object[...]}\n;   #Methods{:any #Endpoint{:meta {:handler #object[...]},\n;                           :handler #object[...],\n;                           :middleware []}}]]\n\nNote that the compiled resuts as third element in the route vector.\nRequest-method based routing\nHandler are also looked under request-method keys: :get, :head, :patch, :delete, :options, :post or :put. Top-level handler is used if request-method based handler is not found.\n(def app\n  (ring/ring-handler\n    (ring/router\n      [\"/ping\" {:name ::ping\n                :get handler\n                :post handler}])))\n\n(app {:request-method :get, :uri \"/ping\"})\n; {:status 200, :body \"ok\"}\n\n(app {:request-method :put, :uri \"/ping\"})\n; nil\n\nName-based reverse routing:\n(-> app\n    (ring/get-router)\n    (reitit/match-by-name ::ping)\n    :path)\n; \"/ping\"\n\nMiddleware\nMiddleware can be added with a :middleware key, either to top-level or under :request-method submap. It's value should be a vector value of the following:\n\nnormal ring middleware function handler -> request -> response\nvector of middleware function handler ?args -> request -> response and optinally it's args.\n\nA middleware and a handler:\n(defn wrap [handler id]\n  (fn [request]\n    (handler (update request ::acc (fnil conj []) id))))\n\n(defn handler [{:keys [::acc]}]\n  {:status 200, :body (conj acc :handler)})\n\nApp with nested middleware:\n(def app\n  (ring/ring-handler\n    (ring/router\n      [\"/api\" {:middleware [#(wrap % :api)]}\n       [\"/ping\" handler]\n       [\"/admin\" {:middleware [[wrap :admin]]}\n        [\"/db\" {:middleware [[wrap :db]]\n                :delete {:middleware [[wrap :delete]]\n                         :handler handler}}]]])))\n\nMiddleware is applied correctly:\n(app {:request-method :delete, :uri \"/api/ping\"})\n; {:status 200, :body [:api :handler]}\n\n(app {:request-method :delete, :uri \"/api/admin/db\"})\n; {:status 200, :body [:api :admin :db :delete :handler]}\n\nAsync Ring\nAll built-in middleware provide both 2 and 3-arity and are compiled for both Clojure & ClojureScript, so they work with Async Ring and Node.js too.\n"},"ring/dynamic_extensions.html":{"url":"ring/dynamic_extensions.html","title":"Dynamic extensions","keywords":"","body":"Dynamic extensions\nring-handler injects the Match into a request and it can be extracted at runtime with reitit.ring/get-match. This can be used to build ad-hoc extensions to the system.\nExample middleware to guard routes based on user roles:\n(require '[clojure.set :as set])\n\n(defn wrap-enforce-roles [handler]\n  (fn [{:keys [::roles] :as request}]\n    (let [required (some-> request (ring/get-match) :meta ::roles)]\n      (if (and (seq required) (not (set/subset? required roles)))\n        {:status 403, :body \"forbidden\"}\n        (handler request)))))\n\nMounted to an app via router meta-data (effecting all routes):\n(def handler (constantly {:status 200, :body \"ok\"}))\n\n(def app\n  (ring/ring-handler\n    (ring/router\n      [[\"/api\"\n        [\"/ping\" handler]\n        [\"/admin\" {::roles #{:admin}}\n         [\"/ping\" handler]]]]\n      {:meta {:middleware [wrap-enforce-roles]}})))\n\nAnonymous access to public route:\n(app {:request-method :get, :uri \"/api/ping\"})\n; {:status 200, :body \"ok\"}\n\nAnonymous access to guarded route:\n(app {:request-method :get, :uri \"/api/admin/ping\"})\n; {:status 403, :body \"forbidden\"}\n\nAuthorized access to guarded route:\n(app {:request-method :get, :uri \"/api/admin/ping\", ::roles #{:admin}})\n; {:status 200, :body \"ok\"}\n\n"},"ring/data_driven_middleware.html":{"url":"ring/data_driven_middleware.html","title":"Data-driven Middleware","keywords":"","body":"Data-driven Middleware\nReitit supports first-class data-driven middleware via reitit.ring.middleware/Middleware records, created with reitit.ring.middleware/create function. The following keys have special purpose:\n\n\n\nkey\ndescription\n\n\n\n\n:name\nName of the middleware as qualified keyword (optional,recommended for libs)\n\n\n:wrap\nThe actual middleware function of handler args? => request => response\n\n\n:gen\nMiddleware compile function, see compiling middleware.\n\n\n\nWhen routes are compiled, all middleware are expanded (and optionally compiled) into Middleware Records and stored in compilation results for later use (api-docs etc). For actual request processing, they are unwrapped into normal middleware functions and composed together producing zero runtime performance penalty. Middleware expansion is backed by reitit.middleware/IntoMiddleware protocol, enabling plain clojure(script) maps to be used.\nA Record:\n(require '[reitit.middleware :as middleware])\n\n(def wrap2\n  (middleware/create\n    {:name ::wrap2\n     :description \"a nice little mw, takes 1 arg.\"\n     :wrap wrap}))\n\nAs plain map:\n;; plain map\n(def wrap3\n  {:name ::wrap3\n   :description \"a nice little mw, :api as arg\"\n   :wrap (fn [handler]\n           (wrap handler :api))})\n\nTODO\nmore!\n"},"ring/parameter_coercion.html":{"url":"ring/parameter_coercion.html","title":"Parameter coercion","keywords":"","body":"Parameter coercion\nReitit provides pluggable parameter coercion via reitit.ring.coercion.protocol/Coercion protocol, originally introduced in compojure-api. Reitit ships with reitit.ring.coercion.spec/SpecCoercion providing implemenation for clojure.spec and data-specs.\nNOTE: Before Clojure 1.9.0 is shipped, to use the spec-coercion, one needs to add the following dependencies manually to the project:\n[org.clojure/clojure \"1.9.0-beta2\"]\n[org.clojure/spec.alpha \"0.1.123\"]\n[metosin/spec-tools \"0.4.0\"]\n\nRing request and response coercion\nTo use Coercion with Ring, one needs to do the following:\n\nDefine parameters and responses as data into route meta-data, in format adopted from ring-swagger:\n:parameters map, with submaps for different parameters: :query, :body, :form, :header and :path. Parameters are defined in the format understood by the Coercion.\n:responses map, with response status codes as keys (or :default for \"everything else\") with maps with :schema and optionally :description as values.\n\n\nDefine a Coercion to route meta-data under :coercion\nMount request & response coercion middleware to the routes (recommended to mount to all routes under router as they mounted only to routes which have the parameters / responses defined):\nreitit.ring.coercion/gen-wrap-coerce-parameters\ngen-wrap-coerce-parameters/gen-wrap-coerce-responses\n\n\n\nIf the request coercion succeeds, the coerced parameters are injected into request under :parameters.\nIf either request or response coercion fails, an descriptive error is thrown.\nExample with data-specs\n(require '[reitit.ring :as ring])\n(require '[reitit.ring.coercion :as coercion])\n(require '[reitit.ring.coercion.spec :as spec])\n\n(def app\n  (ring/ring-handler\n    (ring/router\n      [\"/api\"\n       [\"/ping\" {:parameters {:body {:x int?, :y int?}}\n                 :responses {200 {:schema {:total pos-int?}}}\n                 :get {:handler (fn [{{{:keys [x y]} :body} :parameters}]\n                                  {:status 200\n                                   :body {:total (+ x y)}})}}]]\n      {:meta {:middleware [coercion/gen-wrap-coerce-parameters\n                           coercion/gen-wrap-coerce-response]\n              :coercion spec/coercion}})))\n\n(app\n  {:request-method :get\n   :uri \"/api/ping\"\n   :body-params {:x 1, :y 2}})\n; {:status 200, :body {:total 3}}\n\nExample with specs\nCurrently, clojure.spec doesn't support runtime transformations via conforming, so one needs to wrap all specs with spec-tools.core/spec.\n(require '[reitit.ring :as ring])\n(require '[reitit.ring.coercion :as coercion])\n(require '[reitit.ring.coercion.spec :as spec])\n(require '[clojure.spec.alpha :as s])\n(require '[spec-tools.core :as st])\n\n(s/def ::x (st/spec int?))\n(s/def ::y (st/spec int?))\n(s/def ::total int?)\n(s/def ::request (s/keys :req-un [::x ::y]))\n(s/def ::response (s/keys :req-un [::total]))\n\n(def app\n  (ring/ring-handler\n    (ring/router\n      [\"/api\"\n       [\"/ping\" {:parameters {:body ::request}\n                 :responses {200 {:schema ::response}}\n                 :get {:handler (fn [{{{:keys [x y]} :body} :parameters}]\n                                  {:status 200\n                                   :body {:total (+ x y)}})}}]]\n      {:meta {:middleware [coercion/gen-wrap-coerce-parameters\n                           coercion/gen-wrap-coerce-response]\n              :coercion spec/coercion}})))\n\n(app\n  {:request-method :get\n   :uri \"/api/ping\"\n   :body-params {:x 1, :y 2}})\n; {:status 200, :body {:total 3}}\n\n"},"ring/compiling_middleware.html":{"url":"ring/compiling_middleware.html","title":"Compiling middleware","keywords":"","body":"Compiling Middleware\nThe dynamic extensions is a easy way to extend the system. To enable fast lookups into route data, we can compile them into any shape (records, functions etc.) we want, enabling fast access at request-time.\nStill, we can do better. As we know the exact route that middleware/interceptor is linked to, we can pass the (compiled) route information into the middleware/interceptor at creation-time. It can do local reasoning: extract and transform relevant data just for it and pass it into the actual request-handler via a closure - yielding much faster runtime processing. Middleware/interceptor can also decide not to mount itself. Why mount a wrap-enforce-roles middleware for a route if there are no roles required for it?\nTo enable this we use middleware records :gen hook instead of the normal :wrap. :gen expects a function of route-meta router-opts => wrap. Middleware can also return nil, which effective unmounts the middleware.\nTo demonstrate the two approaches, below are response coercion middleware written as normal ring middleware function and as middleware record with :gen. These are the actual codes are from reitit.ring.coercion:\nNaive\n\nExtracts the compiled route information on every request.\n\n(defn wrap-coerce-response\n  \"Pluggable response coercion middleware.\n  Expects a :coercion of type `reitit.coercion.protocol/Coercion`\n  and :responses from route meta, otherwise will do nothing.\"\n  [handler]\n  (fn\n    ([request]\n     (let [response (handler request)\n           method (:request-method request)\n           match (ring/get-match request)\n           responses (-> match :result method :meta :responses)\n           coercion (-> match :meta :coercion)\n           opts (-> match :meta :opts)]\n       (if (and coercion responses)\n         (let [coercers (response-coercers coercion responses opts)]\n           (coerce-response coercers request response))\n         response)))\n    ([request respond raise]\n     (let [method (:request-method request)\n           match (ring/get-match request)\n           responses (-> match :result method :meta :responses)\n           coercion (-> match :meta :coercion)\n           opts (-> match :meta :opts)]\n       (if (and coercion responses)\n         (let [coercers (response-coercers coercion responses opts)]\n           (handler request #(respond (coerce-response coercers request %))))\n         (handler request respond raise))))))\n\nCompiled\n\nRoute information is provided via a closure\nPre-compiled coercers\nMounts only if :coercion and :responses are defined for the route\n\n(def gen-wrap-coerce-response\n  \"Generator for pluggable response coercion middleware.\n  Expects a :coercion of type `reitit.coercion.protocol/Coercion`\n  and :responses from route meta, otherwise does not mount.\"\n  (middleware/create\n    {:name ::coerce-response\n     :gen (fn [{:keys [responses coercion opts]} _]\n            (if (and coercion responses)\n              (let [coercers (response-coercers coercion responses opts)]\n                (fn [handler]\n                  (fn\n                    ([request]\n                     (coerce-response coercers request (handler request)))\n                    ([request respond raise]\n                     (handler request #(respond (coerce-response coercers request %)) raise)))))))}))\n\nThe :gen -version has 50% less code, is easier to reason about and is twice as faster on basic perf tests.\n"},"performance.html":{"url":"performance.html","title":"Performance","keywords":"","body":"Performance\nThere are many great routing libraries for Clojure(Script), but not many are optimized for perf. Reitit tries to be both great in features and really fast. Originally the routing was adopted from Pedestal, but it has been since mostly rewritten.\nRationale\n\nMultiple routing algorithms, select for for a given route tree\nRoute flattening and re-ordering\nManaged mutability over Immutability\nPrecompute/compile as much as possible (matches, middleware, routes)\nUse abstractions that enable JVM optimizations\nUse small functions to enable JVM Inlining\nProtocols over Multimethods\nRecords over Maps\nAlways be measuring\nDon't trust the (micro-)benchmarks\n\nPerformance guides\nAs a library user, some things related to performance:\n\navoid wildcard-routes - it's an order of magnitude slower to match than non-wildcard routes\nit's ok to mix non-wildcard and wildcard routes in a same routing tree as long as you don't disable the conflict resolution => if no conflicting routes are found, a :mixed-router can be created, which collects all non-wildcard routes into a separate fast subrouter.\n\nExample\nThe routing sample taken from bide perf suite, run with a Late 2013 MacBook Pro, with the perf profile:\n(require '[reitit.core :as r])\n(require '[criterium.core :as cc])\n\n(def routes\n  (r/router\n    [[\"/auth/login\" :auth/login]\n     [\"/auth/recovery/token/:token\" :auth/recovery]\n     [\"/workspace/:project/:page\" :workspace/page]]))\n\n;; Execution time mean : 3.488297 µs -> 286M ops/sec\n(cc/quick-bench\n  (dotimes [_ 1000]\n    (r/match-by-path routes \"/auth/login\")))\n\n;; Execution time mean : 692.905995 µs -> 1.4M ops/sec\n(cc/quick-bench\n  (dotimes [_ 1000]\n    (r/match-by-path routes \"/workspace/1/1\")))\n\nIs that good?\nBased on some quick tests, the first lookup is order of 100 times faster than other tested Clojure routing libraries. The second being 3-18x faster. But as like most microbenchmarks, test usually lie as they test different test things with different libs. For example, Pedestal also matches on the :request-method which makes it do more work. With real life routing trees, the differences are most likely more subtle, or even the order might be totally different.\nSo why test?\nReal value of perf tests is to have a internal baseline and optimize against it. Also, to ensure that new features don't regress the performance.\nIt might be interesting to look out of the box and compare Clojure routing libs to routers in other languages, like the routers in Go.\nPlans ahead\nCurrently, the non-wildcard routes are already really fast to match, but wildcard routes use only a naive linear scan. Plan is to add a optimized Trie-based router. See\nhttprouter and Pedestal for details. New routing algorithms can be plugged in easily, without changes in the public apis.\n"}}}
\ No newline at end of file
+{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["\"/api/admin/users\"})","\"/api/ipa\")","\"/api/orders/1\")","\"/api/orders/1\"}","\"/api/orders/2\"}","\"/api/orders/:id\"","\"/api/orders/:id\",","\"/api/ping\"","\"/api/ping\")","\"/api/ping\"}","\"0.1.0","\"1\"}","\"ok\",","\"ok\"})","#match{:templ","#methods{...}","#object[user$handler]}","#partialmatch{:templ","#{:id}}","&","'())","'[reitit.cor","'[reitit.r","(","(:api","(app","(clojure.spec)","(clojure.spec),","(def","(defn","(fn","(fnil","(handler","(r/match","(r/partial","(r/router","(requir","(ring/get","(ring/r","(ring/rout","(updat","200,","2})","2},","::ipa)","::order","::ping)","::ping))","::ping]","::ping}","::ping}]",":a",":admin]]}",":admin}",":api]]",":api]]}",":bodi",":get",":get,",":handler",":meta",":middlewar",":name",":param",":path",":post",":put,",":request",":requir",":result",":uri",":user/ord",":wrap",";",">","[\"/admin\"","[\"/api\"","[\"/api/orders/:id\"","[\"/ping\"","[\"/users\"","[[\"/api/ping\"","[[#object[user$wrap]","[[wrap","[_]","[handler","[metosin/reitit","[request]","add","app","base","bi","both","class","clojure(script)","coercion","compilation,","conflict","conj","core","data","dependeci","direct","driven","dynam","exampl","extend","extens","fast","first","follow","functions,","handler","handler}]]])))","id","id)","id))","id)))","id]","id]]))","id}","id},","interceptor","introduct","librari","match?","meta","method","method.","middlewar","middleware,","more.","name","nil","nil,","optionally,","paramet","part","path","pluggabl","project:","r])","reitit","reitit,","request)","requir","resolut","revers","ring","ring])","rout","router","router)","routing.","routing:","separately:","simpl","small","snapshot\"]","spec","support","syntax","true","us","wrap","{:get","{:handler","{:id","{:middlewar","{:name","{:request","{:statu","{}"],"basics/":["base","basic","conflict","data","name","path","rout","router","syntax"],"basics/route_syntax.html":["\"/\"","'add","'get","(*path).","(:id)","([\"/get","(condp","(cqr","(defn","(for","(if","(name","(non","(str","::admin]","::admin}]","::db]]","::db]}","::db}]","::dev","::ping]","::ping]]","::ping}]]","::pong}]]",":command",":get",":let",":name",":post)]]",":queri",";","=","[\"\"","[\"/add","[\"/admin\"","[\"/api\"","[\"/api/:version/ping\"]]","[\"/api/admin/db\"","[\"/api/ping\"","[\"/db\"","[\"/dev","[\"/ping\"","[\"/ping\"]","[\"/pong\"","[\"/pong\"]]","[\"/public/*path\"]","[::admin],","[::admin]}","[::api","[:command","[[\"/api/admin\"","[[\"/ping\"","[[\"/ping\"]","[[\"/users/:us","[[:queri","[[type","[action","[add","[get","[interceptor]}}])","[path","action","argument","arguments:","catch","child","cqr","creat","data,","defin","dev","easi","exampl","false)","flattened:","gener","id\"]","ignored.","interceptor))","interceptor]","it'","list","method","mode?","mode?]","nest","nil","nil]","option","order\"","order]]","order]}}])","paramet","parameter:","parameters:","path","programmatically:","rout","route:","routes.","routes:","same","sequential)","simpl","string","syntax","tools\"","tools])])","two","type","user\"","user]","user]}}]","vector","wrap","{:get","{:interceptor","{:middlewar","{:name","{:post","{method"],"basics/router.html":["'[reitit.cor","(def","(defprotocol","(match","(option","(r/rout","(r/router","(requir","(rout","(router","(via","::ping]","::user]]]))",":a",":mix",":user/ping}]",":user/user}]]",";","[\"/api/user/:id\"","[\"/ping\"","[\"/user/:id\"","[[\"/api\"","[[\"/api/ping\"","[thi","[this])","actual","argument","behind","coerc","compil","conflict","creat","created,","data","done:","expand","flatten","follow","function,","get","implement","instanc","map.","meta","name","name]","need","option","params]))","path","path])","protocol)","protocol.","protocol:","r])","raw","reitit.core/expand","reitit.core/rout","resolv","rout","router","router)","router:","routing,","satisfi","scene","select","step","take","tree","tree:","{:name"],"basics/path_based_routing.html":["\"/api/user/1\"","\"/api/user/1\")","\"/api/user/:id\"","\"/hello\")","\"1\"}}","#match{:templ","'[reitit.cor","(def","(onli","(r/match","(r/router","(requir","::ping]","::user]]]))",":a",":meta",":param",":path",":result",":user/user}",";","[\"/ping\"","[\"/user/:id\"","[[\"/api\"","argument","base","done","exact","following:","function.","given","information:","match","match,","matched,","miss","nil","nil,","nil:","on","paramet","partialmatch,","path","provid","r])","reitit.core/match","return","revers","rout","router","router:","routing)","take","us","{:id","{:name"],"basics/name_based_routing.html":["\"/api/ping\"","\"/api/ping\"}","\"/api/user/1\"","\"/api/user/:id\"","\"/api/user/:id\",","\"1\"})","\"1\"}}","#match{:templ","#partialmatch{:templ","#{:id}","#{:id}}","'[reitit.cor","(def","(r/match","(r/partial","(r/rout","(r/router","(requir","(reverse)","/api/user/:id:","::kikka)","::ping)","::ping]","::user","::user)","::user))","::user]]]))",":a",":meta",":name",":param",":path",":requir",":result",":user/ping}",":user/user]",":user/user}",":user/user},",";","[\"/ping\"","[\"/user/:id\"","[:user/p","[[\"/api\"","base","data","defined,","except","exceptioninfo","given","list","match","match?","miss","name","name!","name.","names:","nil","nil,","nil:","param","paramet","parameters:","partialmatch","path","provid","r])","return","returned:","rout","route:","router","router)","router:","set,","throw","true","version:","{:id","{:name","{}"],"basics/route_data.html":["\"/ping\"","\"/ping\")","\"/ping\"}","#match{:templ","#{:admin}","#{:admin}}","#{:db","'[reitit.cor","(def","(r/match","(r/rout","(r/router","(requir","::db]","::ping)","::ping]","::users]","::users}",":a",":append,",":coerc",":compil",":displac",":handler",":meta",":name",":param",":path",":prepend,",":replac",":result",":role",":user/ping}",":user/ping}]",";","[\"/admin\"","[\"/api\"","[\"/api/admin/db\"","[\"/api/admin/users\"","[\"/db\"","[\"/ping\"","[\"/pong\"","[\"/users\"","[::api","[::api]","[::api]}","[::db]","[[\"/api/ping\"","[[\"/ping\"","^:replac","accumul","adapt","add","admin}}]]","admin}}]]]))","applic","argument","arguments.","attacht","behavior","both","case","cheng","client","co","colect","components.","created.","custom","data","data.","data:","default","default,","easi","enabl","exampl","exist","expand","expans","function","heart","hooks.","identity]","identity]}","identity}}]]","identity}}]]))","implement","interpet","it'","key","keyword","leaf","library.","map","map.","match","match.","merge.","meta","name","nest","nil","nil]","non","on","options.","overridden","path","principl","protocol","r])","recurs","reitit/expand","resolv","retriev","return","root","rout","router","router)","sequenti","target","them.","toward","tree:","trees,","us","via","whole","{:get","{:handler","{:interceptor","{:name","{:role","{}"],"basics/route_conflicts.html":["'[reitit.cor","(comp","(def","(r/router","(requir","/:user","/:version/statu","/bulk/:bulk","/public/*path",":a",":conflict",";",">","[\"/:user","[\"/:version/status\"]])","[\"/bulk/:bulk","[\"/public/*path\"]","[[\"/ping\"]","allow","callback.","called.","clojure.lang.exceptioninfo:","compilerexcept","conflicit","conflict","conflicts:","contain","default","default,","descript","effec","especi","ex","exampl","exceptioninfo","explicit","first","good,","id","id\"]","id/ord","id/orders\"]","implement","info","librari","log","lookup.","mani","match","merg","message.","multipl","pass","path","println","r])","reitit","reitit/conflict","resolut","resolv","rest","rout","router","routes)","routes:","run","singl","sources.","str)})","throw","thrown:","tree","unreachanle.","us","usually,","{:conflict"],"advanced/":["advanc","configur","differ","rout","router","valid"],"advanced/configuring_routers.html":["#{route}}","(default",":coerc",":compil",":conflict",":expand",":meta",":path",":rout",":router","=>","[])","actual","allow","arg","avail","base","clojure.spec","coerc","compil","configur","conflict","conflicts!)","data","descript","effect","expand","fast,","follow","function","handl","handler","handlers.","implement","initi","key","meta","nil","opt","option","options.","overrid","path","reitit.core/expand)","reitit.core/router:","reitit.core/throw","resolv","result","return","rout","route,","router","side","thing","throw","valid","vector","via","{rout"],"advanced/different_routers.html":["(r/router","::singl",":linear",":lookup",":mix",":prefix",":router",";","ask","base","best","both","catch","configur","conflicts.","creat","descript","differ","effect","expand","fast","fastest","found.","hash","https://github.com/julienschmidt/httprouter#how","implement","implementation.","inspect","intern","kind","lookup","manual","match","name","on","option,","origin","parameters.","path","pedest","possibl","protocol,","reitit","resolv","rout","route.","router","router)","router,","router:","routers.","routes.","see","select","set","sever","ship","start","static","suitabl","todo:","top","tree","until","us","valid","work","worlds."],"advanced/route_validation.html":["\"/\"))","\"/\")))","\"/\"))))","\"0.3.0\"]","\"1.9.0","\"1.9.660\"]","\"tenant1\"","#'reitit.core/rout","%","%)","'[clojure.spec.alpha","'[clojure.spec.test.alpha","'[expound.alpha","'[reitit.cor","'[reitit.spec","'[reitit.spec])","(*","(?","([\"/api\"","([...","(and","(blank?","(cat","(clojure.core/fn","(clojure.core/or","(clojure.spec.alpha/*","(clojure.spec.alpha/?","(clojure.spec.alpha/and","(clojure.spec.alpha/cat","(clojure.spec.alpha/col","(clojure.spec.alpha/nil","(clojure.spec.alpha/or","(clojure.string/blank?","(clojure.string/start","(def","(fn","(if","(nilabl","(or","(r/router","(requir","(s/explain","(s/valid?","(set!","(start","(stest/instru","...","...])","1.8","2","::spec/raw","::tenant1])",":a",":arg",":child",":clojure.spec.alpha/spec",":clojure.spec.alpha/valu",":dev",":into",":path",":path]",":reitit.spec/arg)",":reitit.spec/path",":reitit.spec/path:",":reitit.spec/raw",":rout",":user/tenant1",":user/tenant1]",";","[\"/api\"","[\"/ping\"]","[\"/public\"","[\"pong\"]]])","[\"tenant1\"","[%]","[...","[0]","[1]","[:rout","[:routes]","[]))","[clojur","[expound","[org.clojure/clojur","[org.clojure/clojurescript","^^^^^^","`reitit/router)","add","alpha17\"]","argument","at:","beta2\"]","bootstrapping:","call","clojur","clojure.core/string?","clojure.lang.exceptioninfo:","clojure.spec","compilerexcept","conform","contain","data","db","db)","definit","depend","detect","develop","error","exampl","expound","expound/printer)","expound])","fail","fals","first","following:","function","futur","go:","higher","higher)","in:","instrument","namespac","note:","on","options.","out*","predicate:","pretti","print","problems.","r])","raw","readi","reitit.core/rout","reitit.spec","relev","requir","rout","route))))","route:","router","routes,","routes:","s/*explain","s])","satisfi","someth","spec","spec:","spec])","stest])","time","to:","todo","us","used)","val:","valid","with?"],"ring/":["coercion","compil","data","driven","dynam","extens","middlewar","paramet","ring","router"],"ring/ring.html":["\"/api/admin/db\"})","\"/api/ping\"})","\"/favicon.ico\"})","\"/ping\"","\"/ping\"})","\"ok\"}","\"ok\"})","#endpoint{:meta","#methods{:ani","#object[...],","#object[...]}","#object[...]},","%","&","'[reitit.r","(","(app","(conj","(def","(defn","(fn","(fnil","(handler","(reitit/match","(reitit/routes))","(requir","(ring/get","(ring/r","(ring/rout","(updat","2","200,","3","::acc","::ping","::ping)",":a",":admin",":admin]]}",":api)]}",":bodi",":db",":db]]",":delet",":delete,",":delete]]",":get",":get,",":handler",":handler)})",":handler]}",":head,",":middlewar",":options,",":patch,",":path)",":post",":put,",":put.",":request",":uri",";",">","?arg","[\"/admin\"","[\"/api\"","[\"/db\"","[\"/ping\"","[#(wrap","[::acc]}]","[:api","[[\"/ping\"","[[wrap","[])","[]}}]]","[_]","[handler","[request]","[{:key","acc","ad","add","app","app:","appli","args.","ariti","async","base","both","built","chain","clojur","clojurescript,","compil","compiler,","conj","correctly:","creat","custom","defined.","element","ensur","expand","following:","found.","function","function.","handl","handler","handler:","handler]","handler])))","handlers,","handler}])))","handler}}]]])))","id))))","id]","it'","key,","keys:","level","look","matches,","method","method.","methods.","middlewar","middleware:","name","nest","nil","node.j","normal","note","optim","optin","provid","reitit.ring/rout","request","respons","results:","resut","revers","ring","ring])","rout","router","router)","routing:","run","show","simpl","stuctur","submap.","support","third","too.","top","under","us","valu","vector","vector.","work","wrap","{:handler","{:middlewar","{:name","{:request","{:statu"],"ring/dynamic_extensions.html":["\"/api/admin/ping\",","\"/api/admin/ping\"})","\"/api/ping\"})","\"forbidden\"}","\"ok\"}","\"ok\"}))","#{:admin}}","#{:admin}})","'[clojure.set","(and","(app","(constantli","(def","(defn","(effect","(fn","(handler","(if","(let","(not","(requir","(ring/get","(ring/r","(ring/rout","(seq","(set/subset?","(some","200,","403,","::role","::roles)]",":a",":bodi",":get,",":meta",":uri",";",">","[\"/admin\"","[\"/ping\"","[::roles]","[[\"/api\"","[handler]","[requir","[wrap","[{:key","access","ad","anonym","app","author","base","build","data","dynam","enforc","exampl","extens","extract","guard","handler","handler]","handler]]]]","hoc","inject","match","match)","match.","meta","method","middlewar","mount","public","reitit.ring/get","request","request)))))","request}]","requir","required)","ring","role","roles)))","roles:","roles]}})))","rout","route:","router","routes):","runtim","set])","system.","us","user","via","wrap","{::role","{:meta","{:middlewar","{:request","{:statu"],"ring/data_driven_middleware.html":["\"a","'[reitit.middlewar","(and","(api","(def","(fn","(middleware/cr","(optional,recommend","(requir","(wrap","1","::wrap2","::wrap3",":a",":api",":api))})",":descript",":gen",":name",":wrap",";;","=>","[handler]","actual","arg\"","arg.\"","args?","back","class","clojure(script)","compil","compiled)","compiled,","compos","creat","data","descript","doc","driven","enabl","etc).","expand","expans","first","follow","function","function,","function.","handler","key","keyword","later","libs)","littl","map","map:","middlewar","middleware.","middleware])","more!","mw,","name","nice","normal","option","penalty.","perform","plain","processing,","produc","protocol,","purpose:","qualifi","record","record:","records,","reitit","reitit.middleware/intomiddlewar","reitit.ring.middleware/cr","reitit.ring.middleware/middlewar","request","respons","result","rout","runtim","see","special","store","support","take","todo","togeth","unwrap","us","used.","via","wrap2","wrap3","wrap}))","zero","{:name"],"ring/parameter_coercion.html":["\"/api/ping\"","\"0.1.123\"]","\"0.4.0\"]","\"1.9.0","\"everyth","&","'[clojure.spec.alpha","'[reitit.r","'[reitit.ring.coercion","'[reitit.ring.coercion.spec","'[spec","(+","(app","(def","(fn","(or","(recommend","(requir","(ring/r","(ring/rout","(s/def","(s/key","(st/spec","/","1,","1.9.0","200","200,","2}})","3}}","::i","::request","::request}","::respons","::response}}","::total","::x","::y]))",":a",":bodi",":body,",":body}",":coercion",":default",":descript",":form,",":get",":header",":paramet",":parameters.",":parameters}]",":path.",":query,",":req",":respons",":schema",":uri",":y",";","[\"/api\"","[\"/ping\"","[::total]))","[::x","[coercion/gen","[metosin/spec","[org.clojure/clojur","[org.clojure/spec.alpha","[x","[{{{:key","add","adopt","api.","app","befor","beta2\"]","clojur","clojure.spec","code","coerc","coercion","coercion,","coercion.","coercion/gen","coercion])","compojur","conforming,","currently,","data","data,","defin","defined):","depend","descript","differ","doesn't","else\")","error","exampl","fails,","follow","following:","format","gen","handler","implemen","inject","int?)","int?))","int?,","int?}}","int?}}}","introduc","key","manual","map","map,","meta","method","middlewar","mount","need","note:","on","option","origin","param","paramet","parameters/gen","parameters:","pluggabl","po","project:","protocol,","provid","reitit","reitit.ring.coercion.protocol/coercion","reitit.ring.coercion.spec/speccoercion","reitit.ring.coercion/gen","request","respons","response]","ring","ring,","ring])","rout","router","runtim","s])","ship","shipped,","spec","spec/coercion}})))","spec])","specs.","st])","statu","submap","succeeds,","support","swagger:","thrown.","tool","tools.cor","tools.core/spec.","transform","un","under","understood","us","values.","via","wrap","x","y)}})}}]]","y]}","{200","{:bodi","{:handler","{:meta","{:middlewar","{:paramet","{:request","{:schema","{:statu","{:total","{:x"],"ring/compiling_middleware.html":["\"gener","\"pluggabl","#(respond","%))","%))))","(","(:request","([request","([request]","(and","(coerc","(compiled)","(def","(defn","(fn","(handler","(if","(let","(middleware/cr","(records,","(respons","(ring/get","50%","::coerc",":coercion",":coercion)",":gen",":gen.",":meta",":opts)]",":respons",":responses)",":result",":wrap.","=>",">","[coercer","[handler]","[method","[respons","[{:key","_]","`reitit.coercion.protocol/coercion`","access","actual","approaches,","basic","below","better.","closur","code","code,","coerc","coercer","coercion","compil","creation","data","data,","decid","defin","demonstr","dynam","easi","easier","effect","enabl","enforc","etc.)","exact","expect","extend","extens","extract","fast","faster","function","gen","handler","hook","inform","instead","it?","itself.","know","less","link","local","lookup","match","meta","meta,","method","middlewar","middleware.","middleware/interceptor","mount","mount.\"","much","naiv","nil,","normal","nothing.\"","opt","opts)]","opts]}","otherwis","pass","perf","pluggabl","pre","processing.","provid","raise))))))","raise)))))))}))","raise]","reason","reasoning:","record","reitit.ring.coercion:","relev","request","request)","request)))","request.","requir","respond","respons","response))","response)))","responses)","return","ring","role","rout","router","runtim","shape","still,","system.","tests.","time.","to,","transform","twice","two","type","unmount","us","version","via","want,","way","wrap","wrap.","written","yield","{:name"],"performance.html":["\"/auth/login\")))","\"/workspace/1/1\")))","'[criterium.cor","'[reitit.cor","(cc/quick","(def","(dotim","(matches,","(micro","(r/match","(r/router","(requir",")benchmark","1.4m","100","1000]","18x","2013","286m","3","3.488297","692.905995",":",":a",":auth/login]",":auth/recovery]",":mix",":request",":workspace/page]]))",";;","=>",">","[\"/auth/recovery/token/:token\"","[\"/workspace/:project/:page\"","[[\"/auth/login\"","[_","abstract","add","adopt","against","ahead","algorithm","algorithms,","alreadi","also,","alway","apis.","avoid","base","baselin","be","bench","bide","both","box","cc])","chang","clojur","clojure(script),","collect","compar","conflict","created,","currently,","details.","differ","different.","disabl","don't","easily,","enabl","ensur","even","exampl","example,","execut","fast","fast.","faster","faster.","featur","first","flatten","found,","function","given","go.","good?","great","guid","httprouter","immut","inlin","interest","intern","it'","it.","jvm","languages,","late","lib","librari","libraries.","libs.","lie","life","linear","long","look","lookup","macbook","magnitud","make","manag","mani","map","match","match,","mean","measur","method","microbenchmarks,","middleware,","mix","more","mostli","much","multimethod","multipl","mutabl","naiv","new","non","ok","ops/sec","optim","order","origin","out","over","path","pedest","pedestal,","perf","perf.","perform","performance.","performance:","plan","plug","possibl","precompute/compil","pro,","profile:","protocol","public","quick","r])","rational","re","real","realli","record","regress","reitit","relat","resolut","rewritten.","rout","router","router.","routes)","run","same","sampl","scan.","second","see","select","separ","slower","small","subrouter.","subtle,","suite,","taken","test","test?","tests,","thing","time","total","tree","trees,","tri","trie","trust","us","user,","usual","valu","wildcard","without","work.","µs"]},"length":19},"tokenStore":{"root":{"1":{"0":{"0":{"0":{"docs":{},"]":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}},"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"docs":{}},"8":{"docs":{},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},".":{"4":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"8":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},"9":{"docs":{},".":{"0":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"docs":{}}},"docs":{}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"2":{"0":{"0":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},",":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"1":{"3":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"docs":{}},"docs":{}},"8":{"6":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"docs":{}},"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}},",":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}},"}":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}},"3":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"}":{"docs":{},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},".":{"4":{"8":{"8":{"2":{"9":{"7":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"4":{"0":{"3":{"docs":{},",":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567}}}},"docs":{}},"docs":{}},"5":{"0":{"docs":{},"%":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}},"docs":{}},"6":{"9":{"2":{"docs":{},".":{"9":{"0":{"5":{"9":{"9":{"5":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"\"":{"0":{"docs":{},".":{"1":{"docs":{},".":{"0":{"docs":{"./":{"ref":"./","tf":0.011396011396011397}}},"1":{"2":{"3":{"docs":{},"\"":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"docs":{}}},"4":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}},"docs":{}}},"docs":{}}},"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}},"}":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}},".":{"9":{"docs":{},".":{"0":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"6":{"6":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.005698005698005698}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},",":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}},"}":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}}}}}}},"i":{"docs":{},"p":{"docs":{},"a":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}},"}":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}},"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}},"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.005698005698005698}},",":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.008547008547008548},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}},"}":{"docs":{"./":{"ref":"./","tf":0.008547008547008548},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}},"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},")":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"1":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567}},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}},"docs":{}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"b":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"\"":{"docs":{},"}":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567}}}}}}}}}}}}},"a":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083}}},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"g":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}}}},"#":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"{":{"docs":{},":":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.014245014245014245},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},"s":{"docs":{},"{":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}},":":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"[":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"$":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"]":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}}}}}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"]":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"{":{"docs":{},":":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"}":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},"}":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016891891891891893}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}},"d":{"docs":{},"b":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"}":{"docs":{},"}":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}}}},"'":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"{":{"docs":{},":":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}}}}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}}}},"&":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"'":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}},"[":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"u":{"docs":{},"m":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},"(":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01818181818181818}},":":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}},"i":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}},",":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"/":{"docs":{},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}}},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.011467889908256881}}}}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}}}},"o":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}}}}},"o":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"b":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"f":{"docs":{},"n":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}},"o":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"j":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}},"m":{"docs":{},"p":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.012121212121212121}}}}}},"q":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"a":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}},"c":{"docs":{},"/":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.008547008547008548},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"n":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.04081632653061224}}}}}}}},"o":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}},"f":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.012121212121212121}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015151515151515152}}}}}}}}},"r":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.02564102564102564},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.025},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.043478260869565216},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014492753623188406},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.008547008547008548},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.016055045871559634},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.023054755043227664},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787}},"e":{"docs":{},"r":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"[":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}}}},"i":{"docs":{},"f":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01440922190201729}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}},"e":{"docs":{},"t":{"docs":{},"!":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},"/":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"?":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}}},"q":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}},"a":{"docs":{},"l":{"docs":{},",":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.011467889908256881},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}},"v":{"docs":{},"i":{"docs":{},"a":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}},"b":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"e":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015151515151515152}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}},"+":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},":":{"docs":{},"i":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"p":{"docs":{},"a":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.017094017094017096}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}},"]":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"}":{"docs":{"./":{"ref":"./","tf":0.008547008547008548}},"]":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"c":{"docs":{},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"d":{"docs":{},"b":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"}":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"e":{"docs":{},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}},"s":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}},"k":{"docs":{},"i":{"docs":{},"k":{"docs":{},"k":{"docs":{},"a":{"docs":{},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"docs":{}}}}}},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"e":{"docs":{},"}":{"docs":{},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"2":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"3":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"docs":{}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"y":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"a":{"docs":{"./":{"ref":"./","tf":0.008547008547008548},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013761467889908258},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.023054755043227664},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"]":{"docs":{},"]":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}}},"p":{"docs":{},"i":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},"]":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}},"}":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}},")":{"docs":{},"]":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}},"r":{"docs":{},"g":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013761467889908258}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"]":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.03546099290780142},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01729106628242075}}},"y":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.011527377521613832}},",":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012232415902140673},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085}}}},"n":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.012121212121212121}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016891891891891893},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"]":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"e":{"docs":{},"r":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.017094017094017096},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01818181818181818}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}}}}}}}},"x":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.017094017094017096},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}},"e":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"}":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.014245014245014245},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013761467889908258}},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}},"c":{"docs":{},"h":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}},")":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"u":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.017094017094017096},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013761467889908258}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.016055045871559634}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0389908256880734}}}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}}}},"u":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}},"e":{"docs":{},"r":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}}}},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"}":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},"]":{"docs":{},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}},"]":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}},"docs":{}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.022900763358778626}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013761467889908258}}}}}},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549}}}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"y":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}},"e":{"docs":{},"v":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}},"e":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505}}},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"b":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"y":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375}}}},";":{"docs":{"./":{"ref":"./","tf":0.11396011396011396},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.029585798816568046},"basics/router.html":{"ref":"basics/router.html","tf":0.02654867256637168},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.075},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.13043478260869565},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.10135135135135136},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.17391304347826086},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.2545871559633027},"ring/ring.html":{"ref":"ring/ring.html","tf":0.03669724770642202},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},";":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}},">":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.057971014492753624},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01818181818181818},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}},"[":{"0":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}},"1":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}},"docs":{},"\"":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.01775147928994083},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}}}}}}}}},":":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"/":{"docs":{},":":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"\"":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.013513513513513514}},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"*":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016891891891891893}}}},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"e":{"docs":{},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},":":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"/":{"docs":{},":":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"/":{"docs":{},":":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}},"docs":{}}}}}}}},"[":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.013513513513513514},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},":":{"docs":{},"u":{"docs":{},"s":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}},"#":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"[":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"$":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009174311926605505}}}}}},":":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},"_":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"]":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.011396011396011397}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"i":{"docs":{},"r":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}},":":{"docs":{},":":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{},",":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}},"}":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"p":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"c":{"docs":{},"c":{"docs":{},"]":{"docs":{},"}":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}},"d":{"docs":{},"b":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"p":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}},"d":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"]":{"docs":{},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.02654867256637168}},"s":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.035398230088495575}}}}}}}},"]":{"docs":{},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"%":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}}}}}}}}}}}}}}},"#":{"docs":{},"(":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}},"{":{"docs":{},":":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"{":{"docs":{},"{":{"docs":{},":":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"a":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}},"d":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"advanced/":{"ref":"advanced/","tf":10.142857142857142}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"l":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}}}},"i":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"s":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"u":{"docs":{},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"r":{"docs":{},"g":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}},"s":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}}},"s":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"?":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}},"\"":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},".":{"docs":{},"\"":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}},"p":{"docs":{},"h":{"docs":{},"a":{"1":{"7":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"docs":{}},"docs":{}}}},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"s":{"docs":{},"o":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"s":{"docs":{},"k":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}},"b":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}},"g":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/":{"ref":"basics/","tf":0.14285714285714285},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.358333333333333},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.3405797101449273},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012232415902140673},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"i":{"docs":{},"c":{"docs":{"basics/":{"ref":"basics/","tf":10.071428571428571},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"c":{"docs":{},"k":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}},"d":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}},"s":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}},"t":{"docs":{},"a":{"2":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}},"docs":{}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"d":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}},".":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},":":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},"o":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.023054755043227664},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.008547008547008548},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":5.023054755043228},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.03636363636363636}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}},"]":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.024242424242424242}}}}}}},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012232415902140673},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.022900763358778626},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":5.015151515151516}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}}}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"d":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}},"s":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},"a":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/":{"ref":"basics/","tf":0.07142857142857142},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":5.036231884057971},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"s":{"docs":{},":":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}},"!":{"docs":{},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"i":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/":{"ref":"advanced/","tf":0.14285714285714285},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":5.020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}},"j":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014492753623188406},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"d":{"docs":{},"e":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"s":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}},"l":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"n":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"q":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.035398230088495575},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}},"c":{"docs":{},"]":{"docs":{},")":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.011396011396011397},"basics/":{"ref":"basics/","tf":0.07142857142857142},"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":5.030405405405405},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":3.348600508905852},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.011527377521613832},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},",":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}},":":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},")":{"docs":{},":":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},"i":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"c":{"docs":{},"i":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced/":{"ref":"advanced/","tf":0.14285714285714285},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":5.019607843137255},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.010169491525423728}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.008547008547008548},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":3.348600508905852}}}}}}},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":5.00709219858156},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}},"'":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.010169491525423728}}}}},"c":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"e":{"docs":{},"s":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"b":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}},"e":{"docs":{},"x":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"e":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"c":{"docs":{},"t":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"s":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":5.01418439716312},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.02027027027027027},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"s":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"s":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"t":{"docs":{},"c":{"docs":{},")":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}},".":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"f":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},",":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"l":{"docs":{},"s":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"e":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},"i":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.011467889908256881}},"s":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.05102040816326531},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},".":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.011396011396011397},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/ring.html":{"ref":"ring/ring.html","tf":0.03669724770642202},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}}}},"s":{"docs":{},".":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"s":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"j":{"docs":{},"u":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"t":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"#":{"docs":{},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.028985507246376812}},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"]":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},"]":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.005698005698005698}},",":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}},"\"":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}},")":{"docs":{},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757}}}}}}}}}}}}}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014492753623188406}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"]":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}},")":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"n":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"t":{"docs":{"./":{"ref":"./","tf":10.002849002849002}}}}}}}},"?":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},"}":{"docs":{},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}},"r":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}}},"f":{"docs":{},"o":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}},"r":{"docs":{},"m":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612}}}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}},"t":{"docs":{},"'":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}},"?":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.029411764705882353}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"y":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},"s":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}},"t":{"docs":{},"t":{"docs":{},"l":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083}}}}},"n":{"docs":{},"k":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"f":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"e":{"docs":{},"a":{"docs":{},"f":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}}}},"s":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"o":{"docs":{},"g":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}},"o":{"docs":{},"k":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"u":{"docs":{},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"n":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.05},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014492753623188406},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.030303030303030304},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"?":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}},"s":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}},"p":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},".":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}},":":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"n":{"docs":{},"i":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}},"a":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"c":{"docs":{},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"g":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"k":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.04081632653061224},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.03058103975535168},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015151515151515152},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},".":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"s":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}}},"r":{"docs":{},"g":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}},"e":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}},"a":{"docs":{},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"ring/":{"ref":"ring/","tf":0.16666666666666666},"ring/ring.html":{"ref":"ring/ring.html","tf":0.027522935779816515},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":3.402035623409669},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":5.0212121212121215}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}},"]":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"s":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}},"x":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},".":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}},"!":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"d":{"docs":{},"e":{"docs":{},"?":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}},".":{"docs":{},"\"":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"s":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014492753623188406},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"w":{"docs":{},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.017094017094017096},"basics/":{"ref":"basics/","tf":0.07142857142857142},"basics/router.html":{"ref":"basics/router.html","tf":0.05309734513274336},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.3840579710144922},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}},"!":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},".":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},"s":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"i":{"docs":{},"v":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.02564102564102564},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.025},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}},",":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}},":":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}},"c":{"docs":{},"e":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"e":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375}}}},"w":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}},"o":{"docs":{},"n":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"performance.html":{"ref":"performance.html","tf":0.013559322033898305}}},"t":{"docs":{},"e":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"\"":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.04081632653061224},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/router.html":{"ref":"basics/router.html","tf":0.035398230088495575},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}}},"s":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}},",":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"m":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"performance.html":{"ref":"performance.html","tf":0.013559322033898305}}},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}},"]":{"docs":{},"}":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.013559322033898305}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.029411764705882353},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.010169491525423728}},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":5.025936599423631}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"s":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}},"s":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.008547008547008548},"basics/":{"ref":"basics/","tf":0.07142857142857142},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.023668639053254437},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.433333333333333},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.029411764705882353},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"]":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}}},"s":{"docs":{},"s":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"g":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.022900763358778626}}}},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}},"r":{"docs":{},"o":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}},".":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}},",":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"s":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"l":{"docs":{},"n":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}},"e":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"a":{"docs":{},"l":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}},"r":{"docs":{},"f":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.010169491525423728}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"performance.html":{"ref":"performance.html","tf":10.00677966101695}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},":":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"o":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"r":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},":":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}}}},"r":{"docs":{},"]":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},",":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}},".":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},":":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.021406727828746176},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014184397163120567},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01440922190201729},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.02727272727272727}},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.015151515151515152}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}},"}":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"v":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},"s":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.020172910662824207},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.045454545454545456}},"e":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"s":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}}},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.025},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},":":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"s":{"docs":{},",":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}}},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},"l":{"docs":{},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}},"a":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.011396011396011397},"ring/":{"ref":"ring/","tf":10.166666666666666},"ring/ring.html":{"ref":"ring/ring.html","tf":5.021406727828746},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"]":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.017094017094017096},"basics/":{"ref":"basics/","tf":0.35714285714285715},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":5.0828402366863905},"basics/router.html":{"ref":"basics/router.html","tf":0.061946902654867256},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.370833333333333},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.369565217391304},"basics/route_data.html":{"ref":"basics/route_data.html","tf":5.050675675675675},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":5.043478260869565},"advanced/":{"ref":"advanced/","tf":0.14285714285714285},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.11224489795918367},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":5.032110091743119},"ring/ring.html":{"ref":"ring/ring.html","tf":0.021406727828746176},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01440922190201729},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.030303030303030304},"performance.html":{"ref":"performance.html","tf":0.0711864406779661}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.039886039886039885},"basics/":{"ref":"basics/","tf":0.07142857142857142},"basics/router.html":{"ref":"basics/router.html","tf":10.079646017699115},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.05},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.050724637681159424},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.037162162162162164},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.028985507246376812},"advanced/":{"ref":"advanced/","tf":0.2857142857142857},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":5.040816326530612},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":5.137254901960785},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/":{"ref":"ring/","tf":0.08333333333333333},"ring/ring.html":{"ref":"ring/ring.html","tf":5.009174311926605},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.010169491525423728}},")":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}},",":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}},"s":{"docs":{},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085}}},"s":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549}}},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.021739130434782608},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}},")":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},":":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}},",":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}},",":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549}}},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013761467889908258}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}},":":{"docs":{"./":{"ref":"./","tf":0.011396011396011397},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125}}}}}}}},"o":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}},"l":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}},"s":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}},":":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}},"]":{"docs":{},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}}}}}}},"a":{"docs":{},"w":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},")":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}}}}},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}},"u":{"docs":{},"n":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"s":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.002849002849002849}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}},"a":{"docs":{},"l":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},"]":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}},"e":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}},"d":{"docs":{},"e":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.011396011396011397}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.016055045871559634},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01440922190201729}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008547008547008548},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"i":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"e":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"b":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/":{"ref":"basics/","tf":0.07142857142857142},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":5.005917159763314}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}},"p":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}},"e":{"docs":{},"p":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}},"s":{"docs":{},"t":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549}}}},"u":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"]":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}}},"a":{"docs":{},"n":{"docs":{},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}},"o":{"docs":{},"w":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"/":{"docs":{},"*":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"e":{"docs":{},"r":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"e":{"docs":{},"e":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}},"s":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"i":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"e":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"s":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}},"]":{"docs":{},")":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"e":{"docs":{},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}}}}}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"d":{"docs":{},"o":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},":":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"p":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"w":{"docs":{},"o":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}},"n":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}},"n":{"docs":{},":":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}},"r":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763},"performance.html":{"ref":"performance.html","tf":0.010169491525423728}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.01694915254237288}},"s":{"docs":{},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"?":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136},"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.029411764705882353},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.010169491525423728}},"e":{"docs":{},"r":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}}},",":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"d":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},".":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}},"m":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"2":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"3":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}},"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.023054755043227664},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.00909090909090909}},"}":{"docs":{},")":{"docs":{},")":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}}},"h":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.0196078431372549},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"l":{"docs":{},"d":{"docs":{},"s":{"docs":{},".":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"l":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.023728813559322035}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"y":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}},"{":{"2":{"0":{"0":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}},"docs":{}},"docs":{}},"docs":{},":":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.013513513513513514}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.002849002849002849},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.008547008547008548},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.014492753623188406}}},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.03550295857988166},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016891891891891893}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.008547008547008548},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.01775147928994083},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012232415902140673},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.014245014245014245},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"basics/router.html":{"ref":"basics/router.html","tf":0.017699115044247787},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.021739130434782608},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016891891891891893},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.016891891891891893}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01834862385321101},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.03546099290780142},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.011527377521613832}}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}}}}}}}}},":":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01440922190201729}}}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.008645533141210375}}}},"}":{"docs":{"./":{"ref":"./","tf":0.005698005698005698},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.010135135135135136}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}},"=":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}},">":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.05102040816326531},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},"e":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005917159763313609}}}}},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.008849557522123894}}}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.0125},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.007246376811594203}}},"?":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}},".":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02127659574468085}}}}},"i":{"docs":{},"d":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}}}},"v":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011834319526627219},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}}},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}},"i":{"docs":{},"a":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006756756756756757},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.0070921985815602835},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"advanced/":{"ref":"advanced/","tf":0.14285714285714285},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.029411764705882353},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":5.004587155963303}}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006880733944954129}}},"u":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0061162079510703364},"performance.html":{"ref":"performance.html","tf":0.003389830508474576}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}}}}}}}}},"/":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.007246376811594203}}}}}}}}}}}}}}},":":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.014492753623188406}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.028985507246376812}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"/":{"docs":{},":":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.028985507246376812}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"*":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_conflicts.html":{"ref":"basics/route_conflicts.html","tf":0.028985507246376812}}}}}}}}}}}}}}},"^":{"docs":{},":":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786}}}}}}}}},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0045871559633027525}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.015267175572519083},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.002881844380403458}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.0033783783783783786},"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}},"s":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/different_routers.html":{"ref":"advanced/different_routers.html","tf":0.00980392156862745}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}},"%":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009174311926605505}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}},"`":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.0022935779816513763}}}}}}}}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"`":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.006060606060606061}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0030581039755351682}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}}},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{"ring/data_driven_middleware.html":{"ref":"ring/data_driven_middleware.html","tf":0.007633587786259542}}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}},"y":{"docs":{},")":{"docs":{},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}}}}}}}},"]":{"docs":{},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.005763688760806916}}}},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}}}}},"_":{"docs":{},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0030303030303030303}}}},")":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"k":{"docs":{"performance.html":{"ref":"performance.html","tf":0.003389830508474576}}}}}}}}}}}},"j":{"docs":{},"v":{"docs":{},"m":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}},"µ":{"docs":{},"s":{"docs":{"performance.html":{"ref":"performance.html","tf":0.006779661016949152}}}}},"length":1949},"corpusTokens":["\"/\"","\"/\"))","\"/\")))","\"/\"))))","\"/api/admin/db\"})","\"/api/admin/ping\",","\"/api/admin/ping\"})","\"/api/admin/users\"})","\"/api/ipa\")","\"/api/orders/1\")","\"/api/orders/1\"}","\"/api/orders/2\"}","\"/api/orders/:id\"","\"/api/orders/:id\",","\"/api/ping\"","\"/api/ping\")","\"/api/ping\"}","\"/api/ping\"})","\"/api/user/1\"","\"/api/user/1\")","\"/api/user/:id\"","\"/api/user/:id\",","\"/auth/login\")))","\"/favicon.ico\"})","\"/hello\")","\"/ping\"","\"/ping\")","\"/ping\"}","\"/ping\"})","\"/workspace/1/1\")))","\"0.1.0","\"0.1.123\"]","\"0.3.0\"]","\"0.4.0\"]","\"1\"}","\"1\"})","\"1\"}}","\"1.9.0","\"1.9.660\"]","\"a","\"everyth","\"forbidden\"}","\"gener","\"ok\",","\"ok\"}","\"ok\"})","\"ok\"}))","\"pluggabl","\"tenant1\"","#'reitit.core/rout","#(respond","#endpoint{:meta","#match{:templ","#methods{...}","#methods{:ani","#object[...],","#object[...]}","#object[...]},","#object[user$handler]}","#partialmatch{:templ","#{:admin}","#{:admin}}","#{:admin}})","#{:db","#{:id}","#{:id}}","#{route}}","%","%)","%))","%))))","&","'())","'[clojure.set","'[clojure.spec.alpha","'[clojure.spec.test.alpha","'[criterium.cor","'[expound.alpha","'[reitit.cor","'[reitit.middlewar","'[reitit.r","'[reitit.ring.coercion","'[reitit.ring.coercion.spec","'[reitit.spec","'[reitit.spec])","'[spec","'add","'get","(","(*","(*path).","(+","(:api","(:id)","(:request","(?","([\"/api\"","([\"/get","([...","([request","([request]","(and","(api","(app","(blank?","(cat","(cc/quick","(clojure.core/fn","(clojure.core/or","(clojure.spec)","(clojure.spec),","(clojure.spec.alpha/*","(clojure.spec.alpha/?","(clojure.spec.alpha/and","(clojure.spec.alpha/cat","(clojure.spec.alpha/col","(clojure.spec.alpha/nil","(clojure.spec.alpha/or","(clojure.string/blank?","(clojure.string/start","(coerc","(comp","(compiled)","(condp","(conj","(constantli","(cqr","(def","(default","(defn","(defprotocol","(dotim","(effect","(fn","(fnil","(for","(handler","(if","(let","(match","(matches,","(micro","(middleware/cr","(name","(nilabl","(non","(not","(onli","(option","(optional,recommend","(or","(r/match","(r/partial","(r/rout","(r/router","(recommend","(records,","(reitit/match","(reitit/routes))","(requir","(respons","(reverse)","(ring/get","(ring/r","(ring/rout","(rout","(router","(s/def","(s/explain","(s/key","(s/valid?","(seq","(set!","(set/subset?","(some","(st/spec","(start","(stest/instru","(str","(updat","(via","(wrap",")benchmark","...","...])","/","/:user","/:version/statu","/api/user/:id:","/bulk/:bulk","/public/*path","1","1,","1.4m","1.8","1.9.0","100","1000]","18x","2","200","200,","2013","286m","2})","2},","2}})","3","3.488297","3}}","403,","50%","692.905995",":","::acc","::admin]","::admin}]","::coerc","::db]","::db]]","::db]}","::db}]","::dev","::i","::ipa)","::kikka)","::order","::ping","::ping)","::ping))","::ping]","::ping]]","::ping}","::ping}]","::ping}]]","::pong}]]","::request","::request}","::respons","::response}}","::role","::roles)]","::singl","::spec/raw","::tenant1])","::total","::user","::user)","::user))","::user]]]))","::users]","::users}","::wrap2","::wrap3","::x","::y]))",":a",":admin",":admin]]}",":admin}",":api",":api))})",":api)]}",":api]]",":api]]}",":append,",":arg",":auth/login]",":auth/recovery]",":bodi",":body,",":body}",":child",":clojure.spec.alpha/spec",":clojure.spec.alpha/valu",":coerc",":coercion",":coercion)",":command",":compil",":conflict",":db",":db]]",":default",":delet",":delete,",":delete]]",":descript",":dev",":displac",":expand",":form,",":gen",":gen.",":get",":get,",":handler",":handler)})",":handler]}",":head,",":header",":into",":let",":linear",":lookup",":meta",":middlewar",":mix",":name",":options,",":opts)]",":param",":paramet",":parameters.",":parameters}]",":patch,",":path",":path)",":path.",":path]",":post",":post)]]",":prefix",":prepend,",":put,",":put.",":queri",":query,",":reitit.spec/arg)",":reitit.spec/path",":reitit.spec/path:",":reitit.spec/raw",":replac",":req",":request",":requir",":respons",":responses)",":result",":role",":rout",":router",":schema",":uri",":user/ord",":user/ping}",":user/ping}]",":user/tenant1",":user/tenant1]",":user/user]",":user/user}",":user/user},",":user/user}]]",":workspace/page]]))",":wrap",":wrap.",":y",";",";;","=","=>",">","?arg","[\"\"","[\"/:user","[\"/:version/status\"]])","[\"/add","[\"/admin\"","[\"/api\"","[\"/api/:version/ping\"]]","[\"/api/admin/db\"","[\"/api/admin/users\"","[\"/api/orders/:id\"","[\"/api/ping\"","[\"/api/user/:id\"","[\"/auth/recovery/token/:token\"","[\"/bulk/:bulk","[\"/db\"","[\"/dev","[\"/ping\"","[\"/ping\"]","[\"/pong\"","[\"/pong\"]]","[\"/public\"","[\"/public/*path\"]","[\"/user/:id\"","[\"/users\"","[\"/workspace/:project/:page\"","[\"pong\"]]])","[\"tenant1\"","[#(wrap","[%]","[...","[0]","[1]","[::acc]}]","[::admin],","[::admin]}","[::api","[::api]","[::api]}","[::db]","[::roles]","[::total]))","[::x","[:api","[:command","[:rout","[:routes]","[:user/p","[[\"/api\"","[[\"/api/admin\"","[[\"/api/ping\"","[[\"/auth/login\"","[[\"/ping\"","[[\"/ping\"]","[[\"/users/:us","[[#object[user$wrap]","[[:queri","[[type","[[wrap","[])","[]))","[]}}]]","[_","[_]","[action","[add","[clojur","[coercer","[coercion/gen","[expound","[get","[handler","[handler]","[interceptor]}}])","[method","[metosin/reitit","[metosin/spec","[org.clojure/clojur","[org.clojure/clojurescript","[org.clojure/spec.alpha","[path","[request]","[requir","[respons","[thi","[this])","[wrap","[x","[{:key","[{{{:key","^:replac","^^^^^^","_]","`reitit.coercion.protocol/coercion`","`reitit/router)","abstract","acc","access","accumul","action","actual","ad","adapt","add","admin}}]]","admin}}]]]))","adopt","advanc","against","ahead","algorithm","algorithms,","allow","alpha17\"]","alreadi","also,","alway","anonym","api.","apis.","app","app:","appli","applic","approaches,","arg","arg\"","arg.\"","args.","args?","argument","arguments.","arguments:","ariti","ask","async","at:","attacht","author","avail","avoid","back","base","baselin","basic","be","befor","behavior","behind","below","bench","best","beta2\"]","better.","bi","bide","bootstrapping:","both","box","build","built","call","callback.","called.","case","catch","cc])","chain","chang","cheng","child","class","client","clojur","clojure(script)","clojure(script),","clojure.core/string?","clojure.lang.exceptioninfo:","clojure.spec","clojurescript,","closur","co","code","code,","coerc","coercer","coercion","coercion,","coercion.","coercion/gen","coercion])","colect","collect","compar","compil","compilation,","compiled)","compiled,","compiler,","compilerexcept","compojur","components.","compos","configur","conflicit","conflict","conflicts!)","conflicts.","conflicts:","conform","conforming,","conj","contain","core","correctly:","cqr","creat","created,","created.","creation","currently,","custom","data","data,","data.","data:","db","db)","decid","default","default,","defin","defined):","defined,","defined.","definit","demonstr","depend","dependeci","descript","details.","detect","dev","develop","differ","different.","direct","disabl","doc","doesn't","don't","done","done:","driven","dynam","easi","easier","easily,","effec","effect","element","else\")","enabl","enforc","ensur","error","especi","etc).","etc.)","even","ex","exact","exampl","example,","except","exceptioninfo","execut","exist","expand","expans","expect","explicit","expound","expound/printer)","expound])","extend","extens","extract","fail","fails,","fals","false)","fast","fast,","fast.","faster","faster.","fastest","featur","first","flatten","flattened:","follow","following:","format","found,","found.","function","function,","function.","functions,","futur","gen","gener","get","given","go.","go:","good,","good?","great","guard","guid","handl","handler","handler:","handler]","handler])))","handler]]]]","handlers,","handlers.","handler}])))","handler}]]])))","handler}}]]])))","hash","heart","higher","higher)","hoc","hook","hooks.","httprouter","https://github.com/julienschmidt/httprouter#how","id","id\"]","id)","id))","id)))","id))))","id/ord","id/orders\"]","id]","id]]))","identity]","identity]}","identity}}]]","identity}}]]))","id}","id},","ignored.","immut","implemen","implement","implementation.","in:","info","inform","information:","initi","inject","inlin","inspect","instanc","instead","instrument","int?)","int?))","int?,","int?}}","int?}}}","interceptor","interceptor))","interceptor]","interest","intern","interpet","introduc","introduct","it'","it.","it?","itself.","jvm","key","key,","keys:","keyword","kind","know","languages,","late","later","leaf","less","level","lib","librari","libraries.","library.","libs)","libs.","lie","life","linear","link","list","littl","local","log","long","look","lookup","lookup.","macbook","magnitud","make","manag","mani","manual","map","map,","map.","map:","match","match)","match,","match.","match?","matched,","matches,","mean","measur","merg","merge.","message.","meta","meta,","method","method.","methods.","microbenchmarks,","middlewar","middleware,","middleware.","middleware/interceptor","middleware:","middleware])","miss","mix","mode?","mode?]","more","more!","more.","mostli","mount","mount.\"","much","multimethod","multipl","mutabl","mw,","naiv","name","name!","name.","name]","names:","namespac","need","nest","new","nice","nil","nil,","nil:","nil]","node.j","non","normal","note","note:","nothing.\"","ok","on","ops/sec","opt","optim","optin","option","option,","optionally,","options.","opts)]","opts]}","order","order\"","order]]","order]}}])","origin","otherwis","out","out*","over","overrid","overridden","param","paramet","parameter:","parameters.","parameters/gen","parameters:","params]))","part","partialmatch","partialmatch,","pass","path","path])","pedest","pedestal,","penalty.","perf","perf.","perform","performance.","performance:","plain","plan","plug","pluggabl","po","possibl","pre","precompute/compil","predicate:","pretti","principl","print","println","pro,","problems.","processing,","processing.","produc","profile:","programmatically:","project:","protocol","protocol)","protocol,","protocol.","protocol:","provid","public","purpose:","qualifi","quick","r])","raise))))))","raise)))))))}))","raise]","rational","raw","re","readi","real","realli","reason","reasoning:","record","record:","records,","recurs","regress","reitit","reitit,","reitit.core/expand","reitit.core/expand)","reitit.core/match","reitit.core/rout","reitit.core/router:","reitit.core/throw","reitit.middleware/intomiddlewar","reitit.ring.coercion.protocol/coercion","reitit.ring.coercion.spec/speccoercion","reitit.ring.coercion/gen","reitit.ring.coercion:","reitit.ring.middleware/cr","reitit.ring.middleware/middlewar","reitit.ring/get","reitit.ring/rout","reitit.spec","reitit/conflict","reitit/expand","relat","relev","request","request)","request)))","request)))))","request.","request}]","requir","required)","resolut","resolv","respond","respons","response))","response)))","response]","responses)","rest","result","results:","resut","retriev","return","returned:","revers","rewritten.","ring","ring,","ring])","role","roles)))","roles:","roles]}})))","root","rout","route))))","route,","route.","route:","router","router)","router,","router.","router:","routers.","routes)","routes):","routes,","routes.","routes:","routing)","routing,","routing.","routing:","run","runtim","s/*explain","s])","same","sampl","satisfi","scan.","scene","second","see","select","separ","separately:","sequenti","sequential)","set","set,","set])","sever","shape","ship","shipped,","show","side","simpl","singl","slower","small","snapshot\"]","someth","sources.","spec","spec/coercion}})))","spec:","spec])","special","specs.","st])","start","static","statu","step","stest])","still,","store","str)})","string","stuctur","submap","submap.","subrouter.","subtle,","succeeds,","suitabl","suite,","support","swagger:","syntax","system.","take","taken","target","test","test?","tests,","tests.","them.","thing","third","throw","thrown.","thrown:","time","time.","to,","to:","todo","todo:","togeth","too.","tool","tools\"","tools.cor","tools.core/spec.","tools])])","top","total","toward","transform","tree","tree:","trees,","tri","trie","true","trust","twice","two","type","un","under","understood","unmount","unreachanle.","until","unwrap","us","used)","used.","user","user\"","user,","user]","user]}}]","usual","usually,","val:","valid","valu","values.","vector","vector.","version","version:","via","want,","way","whole","wildcard","with?","without","work","work.","worlds.","wrap","wrap.","wrap2","wrap3","wrap}))","written","x","y)}})}}]]","y]}","yield","zero","{200","{::role","{:bodi","{:conflict","{:get","{:handler","{:id","{:interceptor","{:meta","{:middlewar","{:name","{:paramet","{:post","{:request","{:role","{:schema","{:statu","{:total","{:x","{method","{rout","{}","µs"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"Introduction","keywords":"","body":"Introduction\nReitit is a small Clojure(Script) library for data-driven routing.\n\nSimple data-driven route syntax\nRoute conflict resolution\nFirst-class route meta-data\nBi-directional routing\nPluggable coercion (clojure.spec)\nsupports both Middleware & Interceptors\nExtendable\nFast\n\nTo use Reitit, add the following dependecy to your project:\n[metosin/reitit \"0.1.0-SNAPSHOT\"]\n\nOptionally, the parts can be required separately:\n[metosin/reitit-core \"0.1.0-SNAPSHOT\"] ; just the router\n[metosin/reitit-ring \"0.1.0-SNAPSHOT\"] ; ring-router\n[metosin/reitit-spec \"0.1.0-SNAPSHOT\"] ; spec-coercion\n\nExamples\nSimple router\n(require '[reitit.core :as r])\n\n(def router\n  (r/router\n    [[\"/api/ping\" ::ping]\n     [\"/api/orders/:id\" ::order-by-id]]))\n\nRouting:\n(r/match-by-path router \"/api/ipa\")\n; nil\n\n(r/match-by-path router \"/api/ping\")\n; #Match{:template \"/api/ping\"\n;        :meta {:name ::ping}\n;        :result nil\n;        :params {}\n;        :path \"/api/ping\"}\n\n(r/match-by-path router \"/api/orders/1\")\n; #Match{:template \"/api/orders/:id\"\n;        :meta {:name ::order-by-id}\n;        :result nil\n;        :params {:id \"1\"}\n;        :path \"/api/orders/1\"}\n\nReverse-routing:\n(r/match-by-name router ::ipa)\n; nil\n\n(r/match-by-name router ::ping)\n; #Match{:template \"/api/ping\"\n;        :meta {:name ::ping}\n;        :result nil\n;        :params {}\n;        :path \"/api/ping\"}\n\n(r/match-by-name router ::order-by-id)\n; #PartialMatch{:template \"/api/orders/:id\"\n;               :meta {:name :user/order-by-id}\n;               :result nil\n;               :params nil\n;               :required #{:id}}\n\n(r/partial-match? (r/match-by-name router ::order-by-id))\n; true\n\n(r/match-by-name router ::order-by-id {:id 2})\n; #Match{:template \"/api/orders/:id\",\n;        :meta {:name ::order-by-id},\n;        :result nil,\n;        :params {:id 2},\n;        :path \"/api/orders/2\"}\n\nRing-router\nRing-router adds support for :handler functions, :middleware and routing based on :request-method. It also supports pluggable parameter coercion (clojure.spec), data-driven middleware, route and middleware compilation, dynamic extensions and more.\n(require '[reitit.ring :as ring])\n\n(def handler [_]\n  {:status 200, :body \"ok\"})\n\n(defn wrap [handler id]\n  (fn [request]\n    (update (handler request) :wrap (fnil conj '()) id)))\n\n(def app\n  (ring/ring-handler\n    (ring/router\n      [\"/api\" {:middleware [[wrap :api]]}\n       [\"/ping\" {:get handler\n                 :name ::ping}]\n       [\"/admin\" {:middleware [[wrap :admin]]}\n        [\"/users\" {:get handler\n                   :post handler}]]])))\n\nRouting:\n(app {:request-method :get, :uri \"/api/admin/users\"})\n; {:status 200, :body \"ok\", :wrap (:api :admin}\n\n(app {:request-method :put, :uri \"/api/admin/users\"})\n; nil\n\nReverse-routing:\n(require '[reitit.core :as r])\n\n(-> app (ring/get-router) (r/match-by-name ::ping))\n; #Match{:template \"/api/ping\"\n;        :meta {:middleware [[#object[user$wrap] :api]]\n;               :get {:handler #object[user$handler]}\n;        :name ::ping}\n;        :result #Methods{...}\n;        :params nil\n;        :path \"/api/ping\"}\n\n"},"basics/":{"url":"basics/","title":"Basics","keywords":"","body":"Basics\n\nRoute syntax\nRouter\nPath-based Routing\nName-based Routing\nRoute data\nRoute conflicts\n\n"},"basics/route_syntax.html":{"url":"basics/route_syntax.html","title":"Route syntax","keywords":"","body":"Route Syntax\nRoutes are defined as vectors of String path and optional (non-sequential) route argument child routes.\nRoutes can be wrapped in vectors and lists and nil routes are ignored.\nPaths can have path-parameters (:id) or catch-all-parameters (*path).\nExamples\nSimple route:\n[\"/ping\"]\n\nTwo routes:\n[[\"/ping\"]\n [\"/pong\"]]\n\nRoutes with route arguments:\n[[\"/ping\" ::ping]\n [\"/pong\" {:name ::pong}]]\n\nRoutes with path parameters:\n[[\"/users/:user-id\"]\n [\"/api/:version/ping\"]]\n\nRoute with catch-all parameter:\n[\"/public/*path\"]\n\nNested routes:\n[\"/api\"\n [\"/admin\" {:middleware [::admin]}\n  [\"\" ::admin]\n  [\"/db\" ::db]]\n [\"/ping\" ::ping]]\n\nSame routes flattened:\n[[\"/api/admin\" {:middleware [::admin], :name ::admin}]\n [\"/api/admin/db\" {:middleware [::admin], :name ::db}]\n [\"/api/ping\" {:name ::ping}]]\n\nGenerating routes\nAs routes are just data, it's easy to create them programmatically:\n(defn cqrs-routes [actions dev-mode?]\n  [\"/api\" {:interceptors [::api ::db]}\n   (for [[type interceptor] actions\n         :let [path (str \"/\" (name interceptor))\n               method (condp = type\n                        :query :get\n                        :command :post)]]\n     [path {method {:interceptors [interceptor]}}])\n   (if dev-mode? [\"/dev-tools\" ::dev-tools])])\n\n(cqrs-routes\n  [[:query   'get-user]\n   [:command 'add-user]\n   [:command 'add-order]]\n  false)\n; [\"/api\" {:interceptors [::api ::db]}\n;  ([\"/get-user\" {:get {:interceptors [get-user]}}]\n;   [\"/add-user\" {:post {:interceptors [add-user]}}]\n;   [\"/add-order\" {:post {:interceptors [add-order]}}])\n;  nil]\n\n"},"basics/router.html":{"url":"basics/router.html","title":"Router","keywords":"","body":"Router\nRoutes are just data and for routing, we need a router instance satisfying the reitit.core/Router protocol. Routers are created with reitit.core/router function, taking the raw routes and optionally an options map.\nThe Router protocol:\n(defprotocol Router\n  (router-name [this])\n  (routes [this])\n  (options [this])\n  (route-names [this])\n  (match-by-path [this path])\n  (match-by-name [this name] [this name params]))\n\nCreating a router:\n(require '[reitit.core :as r])\n\n(def router\n  (r/router\n    [[\"/api\"\n      [\"/ping\" ::ping]\n      [\"/user/:id\" ::user]]]))\n\nName of the created router:\n(r/router-name router)\n; :mixed-router\n\nThe flattened route tree:\n(r/routes router)\n; [[\"/api/ping\" {:name :user/ping}]\n;  [\"/api/user/:id\" {:name :user/user}]]\n\nBehind the scenes\nWhen router is created, the following steps are done:\n\nroute tree is flattened\nroute arguments are expanded (via reitit.core/Expand protocol) and optionally coerced\nroute conflicts are resolved\nactual router implementation is selected and created\noptionally route meta-data gets compiled\n\n"},"basics/path_based_routing.html":{"url":"basics/path_based_routing.html","title":"Path-based Routing","keywords":"","body":"Path-based routing\nPath-based routing is done using the reitit.core/match-by-path function. It takes the router and path as arguments and returns one of the following:\n\nnil, no match\nPartialMatch, path matched, missing path-parameters (only in reverse-routing)\nMatch, exact match\n\nGiven a router:\n(require '[reitit.core :as r])\n\n(def router\n  (r/router\n    [[\"/api\"\n      [\"/ping\" ::ping]\n      [\"/user/:id\" ::user]]]))\n\nNo match returns nil:\n(r/match-by-path router \"/hello\")\n; nil\n\nMatch provides the route information:\n(r/match-by-path router \"/api/user/1\")\n; #Match{:template \"/api/user/:id\"\n;        :meta {:name :user/user}\n;        :path \"/api/user/1\"\n;        :result nil\n;        :params {:id \"1\"}}\n\n"},"basics/name_based_routing.html":{"url":"basics/name_based_routing.html","title":"Name-based Routing","keywords":"","body":"Name-based (reverse) routing\nAll routes which have :name route data defined, can also be matched by name.\nGiven a router:\n(require '[reitit.core :as r])\n\n(def router\n  (r/router\n    [[\"/api\"\n      [\"/ping\" ::ping]\n      [\"/user/:id\" ::user]]]))\n\nListing all route names:\n(r/route-names router)\n; [:user/ping :user/user]\n\nNo match returns nil:\n(r/match-by-name router ::kikka)\nnil\n\nMatching a route:\n(r/match-by-name router ::ping)\n; #Match{:template \"/api/ping\"\n;        :meta {:name :user/ping}\n;        :result nil\n;        :params {}\n;        :path \"/api/ping\"}\n\nIf not all path-parameters are set, a PartialMatch is returned:\n(r/match-by-name router ::user)\n; #PartialMatch{:template \"/api/user/:id\",\n;               :meta {:name :user/user},\n;               :result nil,\n;               :params nil,\n;               :required #{:id}}\n\n(r/partial-match? (r/match-by-name router ::user))\n; true\n\nWith provided path-parameters:\n(r/match-by-name router ::user {:id \"1\"})\n; #Match{:template \"/api/user/:id\"\n;        :meta {:name :user/user}\n;        :path \"/api/user/1\"\n;        :result nil\n;        :params {:id \"1\"}}\n\nThere is also a exception throwing version:\n(r/match-by-name! router ::user)\n; ExceptionInfo missing path-params for route /api/user/:id: #{:id}\n\n"},"basics/route_data.html":{"url":"basics/route_data.html","title":"Route data","keywords":"","body":"Route data\nRoute data is the heart of this library. Routes can have any data attachted to them. Data is interpeted either by the client application or the Router via it's :coerce and :compile hooks. This enables  co-existence of both adaptive and principled components.\nRoutes can have a non-sequential route argument that is expanded into route data map when a router is created.\n(require '[reitit.core :as r])\n\n(def router\n  (r/router\n    [[\"/ping\" ::ping]\n     [\"/pong\" identity]\n     [\"/users\" {:get {:roles #{:admin}\n                      :handler identity}}]]))\n\nThe expanded route data can be retrieved from a router with routes and is returned with match-by-path and match-by-name in case of a route match.\n(r/routes router)\n; [[\"/ping\" {:name :user/ping}]\n;  [\"/pong\" {:handler identity]}\n;  [\"/users\" {:get {:roles #{:admin}\n;                   :handler identity}}]]\n\n(r/match-by-path router \"/ping\")\n; #Match{:template \"/ping\"\n;        :meta {:name :user/ping}\n;        :result nil\n;        :params {}\n;        :path \"/ping\"}\n\n(r/match-by-name router ::ping)\n; #Match{:template \"/ping\"\n;        :meta {:name :user/ping}\n;        :result nil\n;        :params {}\n;        :path \"/ping\"}\n\nNested route data\nFor nested route trees, route data is accumulated recursively from root towards leafs using meta-merge. Default behavior for colections is :append, but this can be overridden to :prepend, :replace or :displace using the target meta-data.\nAn example router with nested data:\n(def router\n  (r/router\n    [\"/api\" {:interceptors [::api]}\n     [\"/ping\" ::ping]\n     [\"/admin\" {:roles #{:admin}}\n      [\"/users\" ::users]\n      [\"/db\" {:interceptors [::db]\n              :roles ^:replace #{:db-admin}}]]]))\n\nResolved route tree:\n(r/routes router)\n; [[\"/api/ping\" {:interceptors [::api]\n;                :name :user/ping}]\n;  [\"/api/admin/users\" {:interceptors [::api]\n;                       :roles #{:admin}\n;                       :name ::users} nil]\n;  [\"/api/admin/db\" {:interceptors [::api ::db]\n;                    :roles #{:db-admin}}]]\n\nExpansion\nBy default, reitit/Expand protocol is used to expand the route arguments. It expands keywords into :name and functions into :handler key in the route data map. It's easy to add custom expanders and one can chenge the whole expand implementation via router options.\n(require '[reitit.core :as r])\n\n(def router\n  (r/router\n    [[\"/ping\" ::ping]\n     [\"/pong\" identity]\n     [\"/users\" {:get {:roles #{:admin}\n                      :handler identity}}]]))\n\n(r/routes router)\n; [[\"/ping\" {:name :user/ping}]\n;  [\"/pong\" {:handler identity]}\n;  [\"/users\" {:get {:roles #{:admin}\n;                   :handler identity}}]]\n\n(r/match-by-path router \"/ping\")\n; #Match{:template \"/ping\"\n;        :meta {:name :user/ping}\n;        :result nil\n;        :params {}\n;        :path \"/ping\"}\n\n"},"basics/route_conflicts.html":{"url":"basics/route_conflicts.html","title":"Route conflicts","keywords":"","body":"Route conflicts\nMany routing libraries allow multiple matches for a single path lookup. Usually, the first match is used and the rest are effecively unreachanle. This is not good, especially if route tree is merged from multiple sources.\nReitit resolves this by running explicit conflicit resolution when a router is called. Conflicting routes are passed into a :conflicts callback. Default implementation throws ex-info with a descriptive message.\nExamples router with conflicting routes:\n(require '[reitit.core :as r])\n\n(def routes\n  [[\"/ping\"]\n   [\"/:user-id/orders\"]\n   [\"/bulk/:bulk-id\"]\n   [\"/public/*path\"]\n   [\"/:version/status\"]])\n\nBy default, ExceptionInfo is thrown:\n(r/router routes)\n; CompilerException clojure.lang.ExceptionInfo: Router contains conflicting routes:\n;\n;    /:user-id/orders\n; -> /public/*path\n; -> /bulk/:bulk-id\n;\n;    /bulk/:bulk-id\n; -> /:version/status\n;\n;    /public/*path\n; -> /:version/status\n;\n\nJust logging the conflicts:\n(r/router\n  routes\n  {:conflicts (comp println reitit/conflicts-str)})\n; Router contains conflicting routes:\n;\n;    /:user-id/orders\n; -> /public/*path\n; -> /bulk/:bulk-id\n;\n;    /bulk/:bulk-id\n; -> /:version/status\n;\n;    /public/*path\n; -> /:version/status\n;\n\n"},"advanced/":{"url":"advanced/","title":"Advanced","keywords":"","body":"Advanced\n\nConfiguring routers\nDifferent Routers\nRoute Validation\n\n"},"advanced/configuring_routers.html":{"url":"advanced/configuring_routers.html","title":"Configuring routers","keywords":"","body":"Configuring Routers\nRouters can be configured via options. Options allow things like clojure.spec validation for meta-data and fast, compiled handlers. The following options are available for the reitit.core/router:\n\n\n\nkey\ndescription\n\n\n\n\n:path\nBase-path for routes\n\n\n:routes\nInitial resolved routes (default [])\n\n\n:meta\nInitial expanded route-meta vector (default [])\n\n\n:expand\nFunction of arg opts => meta to expand route arg to route meta-data (default reitit.core/expand)\n\n\n:coerce\nFunction of route opts => route to coerce resolved route, can throw or return nil\n\n\n:compile\nFunction of route opts => result to compile a route handler\n\n\n:conflicts\nFunction of {route #{route}} => side-effect to handle conflicting routes (default reitit.core/throw-on-conflicts!)\n\n\n:router\nFunction of routes opts => router to override the actual router implementation\n\n\n\n"},"advanced/different_routers.html":{"url":"advanced/different_routers.html","title":"Different Routers","keywords":"","body":"Different Routers\nReitit ships with several different implementations for the Router protocol, originally based on the Pedestal implementation. router selects the most suitable implementation by inspecting the expanded routes. The implementation can be set manually using :router option, see configuring routers.\n\n\n\nrouter\ndescription\n\n\n\n\n:linear-router\nMatches the routes one-by-one starting from the top until a match is found. Works with any kind of routes.\n\n\n:lookup-router\nFast router, uses hash-lookup to resolve the route. Valid if no paths have path or catch-all parameters.\n\n\n:mixed-router\nCreates internally a :linear-router and a :lookup-router and used them to effectively get best-of-both-worlds. Valid if there are no Route conflicts.\n\n\n::single-static-path-router\nFastest possible router: valid only if there is one static route.\n\n\n:prefix-tree-router\nTODO: https://github.com/julienschmidt/httprouter#how-does-it-work\n\n\n\nThe router name can be asked from the router\n(r/router-name router)\n; :mixed-router\n\n"},"advanced/route_validation.html":{"url":"advanced/route_validation.html","title":"Route Validation","keywords":"","body":"Route validation\nNamespace reitit.spec contains clojure.spec definitions for raw-routes, routes, router and router options.\nNOTE: Use of specs requires to use one of the following:\n\n[org.clojure/clojurescript \"1.9.660\"] (or higher)\n[org.clojure/clojure \"1.9.0-beta2\"] (or higher)\n[clojure-future-spec \"1.9.0-alpha17\"] (if Clojure 1.8 is used)\n\nExample\n(require '[clojure.spec.alpha :as s])\n(require '[reitit.spec :as spec])\n\n(def routes-from-db\n  [\"tenant1\" ::tenant1])\n\n(s/valid? ::spec/raw-routes routes-from-db)\n; false\n\n(s/explain ::spec/raw-routes routes-from-db)\n; In: [0] val: \"tenant1\" fails spec: :reitit.spec/path at: [:route :path] predicate: (or (blank? %) (starts-with? % \"/\"))\n; In: [0] val: \"tenant1\" fails spec: :reitit.spec/raw-route at: [:routes] predicate: (cat :path :reitit.spec/path :arg (? :reitit.spec/arg) :childs (* (and (nilable :reitit.spec/raw-route))))\n; In: [1] val: :user/tenant1 fails spec: :reitit.spec/raw-route at: [:routes] predicate: (cat :path :reitit.spec/path :arg (? :reitit.spec/arg) :childs (* (and (nilable :reitit.spec/raw-route))))\n; :clojure.spec.alpha/spec  :reitit.spec/raw-routes\n; :clojure.spec.alpha/value  [\"tenant1\" :user/tenant1]\n\nAt development time\nreitit.core/router can be instrumented and use something like expound to pretty-print the spec problems.\nFirst add a :dev dependency to:\n[expound \"0.3.0\"] ; or higher\n\nSome bootstrapping:\n(require '[clojure.spec.test.alpha :as stest])\n(require '[expound.alpha :as expound])\n(require '[clojure.spec.alpha :as s])\n(require '[reitit.spec])\n\n(stest/instrument `reitit/router)\n(set! s/*explain-out* expound/printer)\n\nAnd we are ready to go:\n(require '[reitit.core :as r])\n\n(r/router\n  [\"/api\"\n   [\"/public\"\n    [\"/ping\"]\n    [\"pong\"]]])\n\n; CompilerException clojure.lang.ExceptionInfo: Call to #'reitit.core/router did not conform to spec:\n;\n; -- Spec failed --------------------\n;\n; Function arguments\n;\n; ([\"/api\" ...])\n;   ^^^^^^\n;\n;     should satisfy\n;\n; (clojure.spec.alpha/cat\n;   :path\n;   :reitit.spec/path\n;   :arg\n;   (clojure.spec.alpha/? :reitit.spec/arg)\n;   :childs\n;   (clojure.spec.alpha/*\n;     (clojure.spec.alpha/and\n;       (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n;\n; or\n;\n; (clojure.spec.alpha/cat\n;   :path\n;   :reitit.spec/path\n;   :arg\n;   (clojure.spec.alpha/? :reitit.spec/arg)\n;   :childs\n;   (clojure.spec.alpha/*\n;     (clojure.spec.alpha/and\n;       (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n;\n; -- Relevant specs -------\n;\n; :reitit.spec/raw-route:\n; (clojure.spec.alpha/cat\n;   :path\n;   :reitit.spec/path\n;   :arg\n;   (clojure.spec.alpha/? :reitit.spec/arg)\n;   :childs\n;   (clojure.spec.alpha/*\n;     (clojure.spec.alpha/and\n;       (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n; :reitit.spec/raw-routes:\n; (clojure.spec.alpha/or\n;   :route\n;   :reitit.spec/raw-route\n;   :routes\n;   (clojure.spec.alpha/coll-of :reitit.spec/raw-route :into []))\n;\n; -- Spec failed --------------------\n;\n; Function arguments\n;\n; ([... [... ... [\"pong\"]]])\n;                 ^^^^^^\n;\n;     should satisfy\n;\n; (fn\n;   [%]\n;   (or\n;     (clojure.string/blank? %)\n;     (clojure.string/starts-with? % \"/\")))\n;\n; or\n;\n; (fn\n;   [%]\n;   (or\n;     (clojure.string/blank? %)\n;     (clojure.string/starts-with? % \"/\")))\n;\n; -- Relevant specs -------\n;\n; :reitit.spec/path:\n; (clojure.spec.alpha/and\n;   clojure.core/string?\n;   (clojure.core/fn\n;     [%]\n;     (clojure.core/or\n;       (clojure.string/blank? %)\n;       (clojure.string/starts-with? % \"/\"))))\n; :reitit.spec/raw-route:\n; (clojure.spec.alpha/cat\n;   :path\n;   :reitit.spec/path\n;   :arg\n;   (clojure.spec.alpha/? :reitit.spec/arg)\n;   :childs\n;   (clojure.spec.alpha/*\n;     (clojure.spec.alpha/and\n;       (clojure.spec.alpha/nilable :reitit.spec/raw-route))))\n; :reitit.spec/raw-routes:\n; (clojure.spec.alpha/or\n;   :route\n;   :reitit.spec/raw-route\n;   :routes\n;   (clojure.spec.alpha/coll-of :reitit.spec/raw-route :into []))\n;\n; -------------------------\n; Detected 2 errors\n\nValidating route data\nTODO\n"},"ring/":{"url":"ring/","title":"Ring","keywords":"","body":"Ring\n\nRing-router\nDynamic extensions\nData-driven Middleware\nParameter coercion\nCompiling middleware\n\n"},"ring/ring.html":{"url":"ring/ring.html","title":"Ring-router","keywords":"","body":"Ring Router\nRing-router adds support for handlers, middleware and routing based on :request-method. Ring-router is created with reitit.ring/router function. It runs a custom route compiler, creating a optimized stucture for handling route matches, with compiled middleware chain & handlers for all request methods. It also ensures that all routes have a :handler defined.\nSimple Ring app:\n(require '[reitit.ring :as ring])\n\n(defn handler [_]\n  {:status 200, :body \"ok\"})\n\n(def app\n  (ring/ring-handler\n    (ring/router\n      [\"/ping\" handler])))\n\nApplying the handler:\n(app {:request-method :get, :uri \"/favicon.ico\"})\n; nil\n\n(app {:request-method :get, :uri \"/ping\"})\n; {:status 200, :body \"ok\"}\n\nThe expanded routes shows the compilation results:\n(-> app (ring/get-router) (reitit/routes))\n; [[\"/ping\"\n;   {:handler #object[...]}\n;   #Methods{:any #Endpoint{:meta {:handler #object[...]},\n;                           :handler #object[...],\n;                           :middleware []}}]]\n\nNote that the compiled resuts as third element in the route vector.\nRequest-method based routing\nHandler are also looked under request-method keys: :get, :head, :patch, :delete, :options, :post or :put. Top-level handler is used if request-method based handler is not found.\n(def app\n  (ring/ring-handler\n    (ring/router\n      [\"/ping\" {:name ::ping\n                :get handler\n                :post handler}])))\n\n(app {:request-method :get, :uri \"/ping\"})\n; {:status 200, :body \"ok\"}\n\n(app {:request-method :put, :uri \"/ping\"})\n; nil\n\nName-based reverse routing:\n(-> app\n    (ring/get-router)\n    (reitit/match-by-name ::ping)\n    :path)\n; \"/ping\"\n\nMiddleware\nMiddleware can be added with a :middleware key, either to top-level or under :request-method submap. It's value should be a vector value of the following:\n\nnormal ring middleware function handler -> request -> response\nvector of middleware function handler ?args -> request -> response and optinally it's args.\n\nA middleware and a handler:\n(defn wrap [handler id]\n  (fn [request]\n    (handler (update request ::acc (fnil conj []) id))))\n\n(defn handler [{:keys [::acc]}]\n  {:status 200, :body (conj acc :handler)})\n\nApp with nested middleware:\n(def app\n  (ring/ring-handler\n    (ring/router\n      [\"/api\" {:middleware [#(wrap % :api)]}\n       [\"/ping\" handler]\n       [\"/admin\" {:middleware [[wrap :admin]]}\n        [\"/db\" {:middleware [[wrap :db]]\n                :delete {:middleware [[wrap :delete]]\n                         :handler handler}}]]])))\n\nMiddleware is applied correctly:\n(app {:request-method :delete, :uri \"/api/ping\"})\n; {:status 200, :body [:api :handler]}\n\n(app {:request-method :delete, :uri \"/api/admin/db\"})\n; {:status 200, :body [:api :admin :db :delete :handler]}\n\nAsync Ring\nAll built-in middleware provide both 2 and 3-arity and are compiled for both Clojure & ClojureScript, so they work with Async Ring and Node.js too.\n"},"ring/dynamic_extensions.html":{"url":"ring/dynamic_extensions.html","title":"Dynamic extensions","keywords":"","body":"Dynamic extensions\nring-handler injects the Match into a request and it can be extracted at runtime with reitit.ring/get-match. This can be used to build ad-hoc extensions to the system.\nExample middleware to guard routes based on user roles:\n(require '[clojure.set :as set])\n\n(defn wrap-enforce-roles [handler]\n  (fn [{:keys [::roles] :as request}]\n    (let [required (some-> request (ring/get-match) :meta ::roles)]\n      (if (and (seq required) (not (set/subset? required roles)))\n        {:status 403, :body \"forbidden\"}\n        (handler request)))))\n\nMounted to an app via router meta-data (effecting all routes):\n(def handler (constantly {:status 200, :body \"ok\"}))\n\n(def app\n  (ring/ring-handler\n    (ring/router\n      [[\"/api\"\n        [\"/ping\" handler]\n        [\"/admin\" {::roles #{:admin}}\n         [\"/ping\" handler]]]]\n      {:meta {:middleware [wrap-enforce-roles]}})))\n\nAnonymous access to public route:\n(app {:request-method :get, :uri \"/api/ping\"})\n; {:status 200, :body \"ok\"}\n\nAnonymous access to guarded route:\n(app {:request-method :get, :uri \"/api/admin/ping\"})\n; {:status 403, :body \"forbidden\"}\n\nAuthorized access to guarded route:\n(app {:request-method :get, :uri \"/api/admin/ping\", ::roles #{:admin}})\n; {:status 200, :body \"ok\"}\n\n"},"ring/data_driven_middleware.html":{"url":"ring/data_driven_middleware.html","title":"Data-driven Middleware","keywords":"","body":"Data-driven Middleware\nReitit supports first-class data-driven middleware via reitit.ring.middleware/Middleware records, created with reitit.ring.middleware/create function. The following keys have special purpose:\n\n\n\nkey\ndescription\n\n\n\n\n:name\nName of the middleware as qualified keyword (optional,recommended for libs)\n\n\n:wrap\nThe actual middleware function of handler args? => request => response\n\n\n:gen\nMiddleware compile function, see compiling middleware.\n\n\n\nWhen routes are compiled, all middleware are expanded (and optionally compiled) into Middleware Records and stored in compilation results for later use (api-docs etc). For actual request processing, they are unwrapped into normal middleware functions and composed together producing zero runtime performance penalty. Middleware expansion is backed by reitit.middleware/IntoMiddleware protocol, enabling plain clojure(script) maps to be used.\nA Record:\n(require '[reitit.middleware :as middleware])\n\n(def wrap2\n  (middleware/create\n    {:name ::wrap2\n     :description \"a nice little mw, takes 1 arg.\"\n     :wrap wrap}))\n\nAs plain map:\n;; plain map\n(def wrap3\n  {:name ::wrap3\n   :description \"a nice little mw, :api as arg\"\n   :wrap (fn [handler]\n           (wrap handler :api))})\n\nTODO\nmore!\n"},"ring/parameter_coercion.html":{"url":"ring/parameter_coercion.html","title":"Parameter coercion","keywords":"","body":"Parameter coercion\nReitit provides pluggable parameter coercion via reitit.ring.coercion.protocol/Coercion protocol, originally introduced in compojure-api. Reitit ships with reitit.ring.coercion.spec/SpecCoercion providing implemenation for clojure.spec and data-specs.\nNOTE: Before Clojure 1.9.0 is shipped, to use the spec-coercion, one needs to add the following dependencies manually to the project:\n[org.clojure/clojure \"1.9.0-beta2\"]\n[org.clojure/spec.alpha \"0.1.123\"]\n[metosin/spec-tools \"0.4.0\"]\n\nRing request and response coercion\nTo use Coercion with Ring, one needs to do the following:\n\nDefine parameters and responses as data into route meta-data, in format adopted from ring-swagger:\n:parameters map, with submaps for different parameters: :query, :body, :form, :header and :path. Parameters are defined in the format understood by the Coercion.\n:responses map, with response status codes as keys (or :default for \"everything else\") with maps with :schema and optionally :description as values.\n\n\nDefine a Coercion to route meta-data under :coercion\nMount request & response coercion middleware to the routes (recommended to mount to all routes under router as they mounted only to routes which have the parameters / responses defined):\nreitit.ring.coercion/gen-wrap-coerce-parameters\ngen-wrap-coerce-parameters/gen-wrap-coerce-responses\n\n\n\nIf the request coercion succeeds, the coerced parameters are injected into request under :parameters.\nIf either request or response coercion fails, an descriptive error is thrown.\nExample with data-specs\n(require '[reitit.ring :as ring])\n(require '[reitit.ring.coercion :as coercion])\n(require '[reitit.ring.coercion.spec :as spec])\n\n(def app\n  (ring/ring-handler\n    (ring/router\n      [\"/api\"\n       [\"/ping\" {:parameters {:body {:x int?, :y int?}}\n                 :responses {200 {:schema {:total pos-int?}}}\n                 :get {:handler (fn [{{{:keys [x y]} :body} :parameters}]\n                                  {:status 200\n                                   :body {:total (+ x y)}})}}]]\n      {:meta {:middleware [coercion/gen-wrap-coerce-parameters\n                           coercion/gen-wrap-coerce-response]\n              :coercion spec/coercion}})))\n\n(app\n  {:request-method :get\n   :uri \"/api/ping\"\n   :body-params {:x 1, :y 2}})\n; {:status 200, :body {:total 3}}\n\nExample with specs\nCurrently, clojure.spec doesn't support runtime transformations via conforming, so one needs to wrap all specs with spec-tools.core/spec.\n(require '[reitit.ring :as ring])\n(require '[reitit.ring.coercion :as coercion])\n(require '[reitit.ring.coercion.spec :as spec])\n(require '[clojure.spec.alpha :as s])\n(require '[spec-tools.core :as st])\n\n(s/def ::x (st/spec int?))\n(s/def ::y (st/spec int?))\n(s/def ::total int?)\n(s/def ::request (s/keys :req-un [::x ::y]))\n(s/def ::response (s/keys :req-un [::total]))\n\n(def app\n  (ring/ring-handler\n    (ring/router\n      [\"/api\"\n       [\"/ping\" {:parameters {:body ::request}\n                 :responses {200 {:schema ::response}}\n                 :get {:handler (fn [{{{:keys [x y]} :body} :parameters}]\n                                  {:status 200\n                                   :body {:total (+ x y)}})}}]]\n      {:meta {:middleware [coercion/gen-wrap-coerce-parameters\n                           coercion/gen-wrap-coerce-response]\n              :coercion spec/coercion}})))\n\n(app\n  {:request-method :get\n   :uri \"/api/ping\"\n   :body-params {:x 1, :y 2}})\n; {:status 200, :body {:total 3}}\n\n"},"ring/compiling_middleware.html":{"url":"ring/compiling_middleware.html","title":"Compiling middleware","keywords":"","body":"Compiling Middleware\nThe dynamic extensions is a easy way to extend the system. To enable fast lookups into route data, we can compile them into any shape (records, functions etc.) we want, enabling fast access at request-time.\nStill, we can do better. As we know the exact route that middleware/interceptor is linked to, we can pass the (compiled) route information into the middleware/interceptor at creation-time. It can do local reasoning: extract and transform relevant data just for it and pass it into the actual request-handler via a closure - yielding much faster runtime processing. Middleware/interceptor can also decide not to mount itself. Why mount a wrap-enforce-roles middleware for a route if there are no roles required for it?\nTo enable this we use middleware records :gen hook instead of the normal :wrap. :gen expects a function of route-meta router-opts => wrap. Middleware can also return nil, which effective unmounts the middleware.\nTo demonstrate the two approaches, below are response coercion middleware written as normal ring middleware function and as middleware record with :gen. These are the actual codes are from reitit.ring.coercion:\nNaive\n\nExtracts the compiled route information on every request.\n\n(defn wrap-coerce-response\n  \"Pluggable response coercion middleware.\n  Expects a :coercion of type `reitit.coercion.protocol/Coercion`\n  and :responses from route meta, otherwise will do nothing.\"\n  [handler]\n  (fn\n    ([request]\n     (let [response (handler request)\n           method (:request-method request)\n           match (ring/get-match request)\n           responses (-> match :result method :meta :responses)\n           coercion (-> match :meta :coercion)\n           opts (-> match :meta :opts)]\n       (if (and coercion responses)\n         (let [coercers (response-coercers coercion responses opts)]\n           (coerce-response coercers request response))\n         response)))\n    ([request respond raise]\n     (let [method (:request-method request)\n           match (ring/get-match request)\n           responses (-> match :result method :meta :responses)\n           coercion (-> match :meta :coercion)\n           opts (-> match :meta :opts)]\n       (if (and coercion responses)\n         (let [coercers (response-coercers coercion responses opts)]\n           (handler request #(respond (coerce-response coercers request %))))\n         (handler request respond raise))))))\n\nCompiled\n\nRoute information is provided via a closure\nPre-compiled coercers\nMounts only if :coercion and :responses are defined for the route\n\n(def gen-wrap-coerce-response\n  \"Generator for pluggable response coercion middleware.\n  Expects a :coercion of type `reitit.coercion.protocol/Coercion`\n  and :responses from route meta, otherwise does not mount.\"\n  (middleware/create\n    {:name ::coerce-response\n     :gen (fn [{:keys [responses coercion opts]} _]\n            (if (and coercion responses)\n              (let [coercers (response-coercers coercion responses opts)]\n                (fn [handler]\n                  (fn\n                    ([request]\n                     (coerce-response coercers request (handler request)))\n                    ([request respond raise]\n                     (handler request #(respond (coerce-response coercers request %)) raise)))))))}))\n\nThe :gen -version has 50% less code, is easier to reason about and is twice as faster on basic perf tests.\n"},"performance.html":{"url":"performance.html","title":"Performance","keywords":"","body":"Performance\nThere are many great routing libraries for Clojure(Script), but not many are optimized for perf. Reitit tries to be both great in features and really fast. Originally the routing was adopted from Pedestal, but it has been since mostly rewritten.\nRationale\n\nMultiple routing algorithms, select for for a given route tree\nRoute flattening and re-ordering\nManaged mutability over Immutability\nPrecompute/compile as much as possible (matches, middleware, routes)\nUse abstractions that enable JVM optimizations\nUse small functions to enable JVM Inlining\nProtocols over Multimethods\nRecords over Maps\nAlways be measuring\nDon't trust the (micro-)benchmarks\n\nPerformance guides\nAs a library user, some things related to performance:\n\navoid wildcard-routes - it's an order of magnitude slower to match than non-wildcard routes\nit's ok to mix non-wildcard and wildcard routes in a same routing tree as long as you don't disable the conflict resolution => if no conflicting routes are found, a :mixed-router can be created, which collects all non-wildcard routes into a separate fast subrouter.\n\nExample\nThe routing sample taken from bide perf suite, run with a Late 2013 MacBook Pro, with the perf profile:\n(require '[reitit.core :as r])\n(require '[criterium.core :as cc])\n\n(def routes\n  (r/router\n    [[\"/auth/login\" :auth/login]\n     [\"/auth/recovery/token/:token\" :auth/recovery]\n     [\"/workspace/:project/:page\" :workspace/page]]))\n\n;; Execution time mean : 3.488297 µs -> 286M ops/sec\n(cc/quick-bench\n  (dotimes [_ 1000]\n    (r/match-by-path routes \"/auth/login\")))\n\n;; Execution time mean : 692.905995 µs -> 1.4M ops/sec\n(cc/quick-bench\n  (dotimes [_ 1000]\n    (r/match-by-path routes \"/workspace/1/1\")))\n\nIs that good?\nBased on some quick tests, the first lookup is order of 100 times faster than other tested Clojure routing libraries. The second being 3-18x faster. But as like most microbenchmarks, test usually lie as they test different test things with different libs. For example, Pedestal also matches on the :request-method which makes it do more work. With real life routing trees, the differences are most likely more subtle, or even the order might be totally different.\nSo why test?\nReal value of perf tests is to have a internal baseline and optimize against it. Also, to ensure that new features don't regress the performance.\nIt might be interesting to look out of the box and compare Clojure routing libs to routers in other languages, like the routers in Go.\nPlans ahead\nCurrently, the non-wildcard routes are already really fast to match, but wildcard routes use only a naive linear scan. Plan is to add a optimized Trie-based router. See\nhttprouter and Pedestal for details. New routing algorithms can be plugged in easily, without changes in the public apis.\n"}}}
\ No newline at end of file