reitit/search_index.json
2017-10-29 07:30:23 +00:00

1 line
No EOL
239 KiB
JSON

{"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","data","differ","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","false)","flattened:","id\"]","ignored.","interceptor))","interceptor]","it'","list","method","mode?","mode?]","nest","nil","nil]","option","order\"","order]]","order]}}])","paramet","parameter:","parameters:","path","path,","programamtically:","raw","rout","route:","routes.","routes:","same","sequential)","simpl","string","syntax","tools\"","tools])])","two","type","user\"","user]","user]}}]","vector","vectors,","wrap","{:get","{:interceptor","{:middlewar","{:name","{:post","{method"],"basics/router.html":["'[reitit.cor","(def","(defprotocol","(match","(option","(r/rout","(r/router","(requir","(rout","(router","::ping]","::user]]]))",":a",":handler.",":name",":user/ping}]",":user/user}]]",";","[\"/api/user/:id\"","[\"/ping\"","[\"/user/:id\"","[[\"/api\"","[[\"/api/ping\"","[thi","[this])","actual","argument","coerc","compiled.","creat","data","default,","expan","expand","flatten","function","function,","get","keyword","map.","name","name]","need","nil","option","params]))","path","path])","protocol.","protocol:","r])","raw","reitit.core/expand","reitit.core/rout","removed.","retriev","rout","router","router)","router:","routing,","satisfi","take","us","{:name"],"basics/path_based_routing.html":["\"/api/user/1\"","\"/api/user/1\")","\"/api/user/:id\"","\"/hello\")","\"1\"}}","#match{:templ","(onli","(r/match",":meta",":param",":path",":result",":user/user}",";","argument","base","done","exact","following:","function.","match","match,","matched,","miss","nil","nil,","on","paramet","partialmatch,","path","reitit.core/match","return","revers","rout","router","routing)","take","us","{:id","{:name"],"basics/name_based_routing.html":["\"/api/user/1\"","\"/api/user/:id\"","\"/api/user/:id\",","\"1\"})","\"1\"}}","#match{:templ","#partialmatch{:templ","#{:id}","#{:id}}","(r/match","(r/partial","(r/rout","/api/user/:id:","::user","::user)","::user))",":meta",":name",":param",":path",":requir",":result",":user/user]",":user/user}",":user/user},",";","[:user/p","base","data","defined,","didn't","except","exceptioninfo","let'","list","match","match?","miss","name","name!","name.","name:","names:","need","nil","nil,","param","parameters.","partial","path","provid","rout","router","router)","throw","too:","true","version:","{:id","{:name"],"basics/route_data.html":["\"/api/admin/db/:db/drop\"","\"/api/admin/db/users/drop\")","\"/api/admin/db/users/drop\"}","\"users\"}","#match{:templ","#{:admin}","#{:admin}}","#{:db","(def","(r/match","(r/router","(reitit/rout","(via","::db","::db]","::drop","::ping]","::ping}]","::users]","::users}]",":compil",":displace.",":meta",":name",":param",":paramet",":path",":prepend,",":replac",":result",":role",";","[\"/:db\"","[\"/admin\"","[\"/api\"","[\"/api/admin/db/:db/drop\"","[\"/api/admin/db/:db/stats\"","[\"/api/admin/users\"","[\"/db\"","[\"/drop\"","[\"/ping\"","[\"/stats\"","[\"/users\"","[::api","[::api]","[::api]}","[::db]","[[\"/api/ping\"","^:replac","accumul","act","admin}","admin}}","append","applic","arbitrari","base","collections,","data","data,","data:","db]","db}","db}]","default,","exampl","hook)","interpret","it'","it.","itself.","match","merge.","meta","nest","nil","overridden","path","recurs","resolv","return","rout","router","router)","routes,","stats]]]]]))","stats}]]","string}","string}}","tree:","us","{:db","{:interceptor","{:paramet","{:role"],"basics/different_routers.html":["(r/router",":linear",":lookup",":mix",":prefix",":router",";","ask","awesom","base","best","both","catch","conflict","creat","descript","differ","effect","expand","fastest","found.","hash","implement","implementation.","inspect","intern","kind","lookup","manual","match","name","on","option.","origin","parameters.","path","pedest","protocol,","reitit","resolv","rout","route.","router","router)","router,","routes.","select","set","sever","ship","start","suitabl","todo","top","tree","until","us","valid","work","worlds."],"advanced/":["advanc","configur","conflict","rout","router","valid"],"advanced/route_conflicts.html":["'[reitit.cor","(comp","(def","(reitit/rout","(requir","/:user","/:version/statu","/bulk/:bulk","/public/*path",":a",":conflict",";",">","[\"/:user","[\"/:version/status\"]])","[\"/bulk/:bulk","[\"/public/*path\"]","[[\"/ping\"]","allow","callback.","clojure.lang.exceptioninfo:","compilerexcept","conflicit","conflict","conflicts:","contain","created.","default","default,","descript","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","regress","reitit","reitit/conflict","reitit])","resolut","resolv","rout","router","routes)","routes.","routes:","run","singl","sourc","str)})","throw","thrown:","tree","unreach","used.","usually,","warning.","without","{:conflict"],"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.spec","'[reitit.spec])","(*","(?","([\"/api\"","([...","(and","(blank?","(cat","(clojur","(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","(e.g.","(fn","(nilabl","(or","(reitit/rout","(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\"]","alpha19\"]","argument","at:","bootstrapping:","call","clojure.core/string?","clojure.lang.exceptioninfo:","clojure.spec","compilerexcept","conform","contain","data","database),","db","db)","definit","depend","detect","develop","directli","error","expound","expound/printer)","expound])","extern","fail","fals","first","following:","function","functions.","futur","gener","go:","in:","instrument","namespac","note:","on","options.","out*","predicate:","pretti","print","problems.","raw","readi","reitit.core/rout","reitit.spec","relev","requir","rout","route))))","route:","router","routes,","routes:","runtim","s/*explain","s])","satisfi","someth","sourc","spec","spec:","spec])","stest])","time","to:","todo","tree","us","val:","valid","with?"],"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"],"ring/":["coercion","compil","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","note","optim","optin","provid","reitit.ring/rout","request","respons","resut","revers","ring","ring])","rout","router","router)","routes:","routing:","run","simpl","stuctur","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/intersect","(some","200,","403,","::role","::roles)]",":a",":bodi",":get,",":meta",":uri",";",">","[\"/admin\"","[\"/ping\"","[::roles]","[[\"/api\"","[handler]","[requir","[wrap","[{:key","access","anonym","app","author","base","build","data","dynam","enforc","exampl","extens","extract","guard","handler","handler]","handler]]]]","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/parameter_coercion.html":["\"/api/ping\"","\"0.1.123\"]","\"0.3.3\"]","\"1.9.0","\"everyth","&","'[clojure.spec.alpha","'[reitit.coercion","'[reitit.coercion.spec","'[reitit.r","'[spec","(+","(app","(def","(fn","(or","(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","alpha20\"]","api.","app","befor","clojur","clojure.spec","code","coerc","coercion","coercion,","coercion.","coercion/gen","coercion])","compojur","data","data,","defin","depend","descript","differ","else\")","error","exampl","fails,","follow","following:","format","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:","pluggabl","po","project:","protocol,","provid","reitit","reitit.coercion.protocol/coercion","reitit.coercion.spec/speccoercion","request","respons","response]","ring","ring,","ring])","rout","routes.","s])","ship","shipped,","spec","spec/coercion}})))","spec])","specs.","st])","statu","submap","succeeds,","swagger:","thrown.","tool","tools.cor","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","2","4x","50%","::coerc",":coercion",":coercion)",":gen",":gen.",":meta",":opts)]",":respons",":responses)",":result",":wrap.","=>",">","[coercer","[handler]","[respons","[{:key","_]","`reitit.coercion.protocol/coercion`","access","actual","approaches,","basic","below","better.","closur","code","code,","coerc","coercer","coercion","compil","compilation,","creation","data","defin","demonstr","easi","easier","effect","enabl","enforc","etc.)","exact","expect","extend","extens","extract","fast","faster","function","gen","handler","hook","inform","instead","interceptor/middlewar","it?","know","less","link","match","meta","meta,","method","middlewar","middleware.","mount","mount.\"","naiv","nil,","normal","opt","opts)","opts)]","opts]}","otherwis","pass","perf","pluggabl","pre","processing.","provid","raise))))))","raise)))))))}))","raise]","reason","record","reitit.coercion:","relev","request","request)","request)))","request))))","request.","requir","respond","respons","response)]","responses)","return","ring","role","rout","router","runtim","shape","still,","system.","tests.","time.","to,","transform","two","type","unmount","us","version","via","way","wrap","wrap.","written","yield","{:name"]},"length":17},"tokenStore":{"root":{"1":{"docs":{},".":{"8":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}},"9":{"docs":{},".":{"0":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}},"docs":{}}},"docs":{}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}},"2":{"0":{"0":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}},",":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01910828025477707},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}},"docs":{}},"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},"}":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},"}":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}},"3":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},"}":{"docs":{},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}},"4":{"0":{"3":{"docs":{},",":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285}}}},"docs":{}},"docs":{},"x":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}},"5":{"0":{"docs":{},"%":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}},"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.003215434083601286}}}}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}},"3":{"docs":{},"\"":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}},"docs":{}}},"docs":{}}},"1":{"docs":{},"\"":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}},"}":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}}}},".":{"9":{"docs":{},".":{"0":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}},"6":{"6":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}},"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":{},"d":{"docs":{},"b":{"docs":{},"/":{"docs":{},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"\"":{"docs":{},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}}}}}}}}}},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},",":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},"}":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}}}}}},"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},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},"}":{"docs":{"./":{"ref":"./","tf":0.009174311926605505}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"1":{"docs":{},"\"":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288}}}}},"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}}}}}}}}}}}}}}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}},")":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}},"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.01694915254237288}}}}}}}}},"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.0031847133757961785}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.009554140127388535}}}}}}}}}},"o":{"docs":{},"k":{"docs":{},"\"":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}}}},"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.004576659038901602}}}},"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.014285714285714285}}}}}}}}}}}}},"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.003215434083601286}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"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.0029411764705882353}}}}}}}}}}},"#":{"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.01694915254237288},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}}}}}}}},"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.0031847133757961785}}}}}}}}}}}}}},"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.0031847133757961785}}},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}}}}}}}}}},"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.010309278350515464}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"}":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}},"d":{"docs":{},"b":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.024691358024691357}}}}},"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.002288329519450801}}}}}}}}}}}}}}}}}}},"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.0031847133757961785}}}}}}}}}}}}}}}},"(":{"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.0058823529411764705}}}}}}}}}}},"&":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}},"'":{"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.01},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}},".":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}}}}}}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}}},"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.004576659038901602},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}},"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.002288329519450801}}}}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}}}},"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.002288329519450801}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}},"(":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01764705882352941}},":":{"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.005952380952380952}}}}},"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.0058823529411764705}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01910828025477707},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},"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.009153318077803204}}},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009153318077803204}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.011441647597254004}}}}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009153318077803204}}}},"o":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}}}},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009153318077803204}}}}},"o":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}}}}}}}}}}}}},"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.006864988558352402}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006864988558352402}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"f":{"docs":{},"n":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}},"o":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}},"j":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},"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.007142857142857143}}}}}}}}}},"m":{"docs":{},"p":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01764705882352941}}}}}},"q":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}},"a":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009554140127388535},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},"n":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009554140127388535},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}},"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.01}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.04081632653061224}}}}}}}}},"f":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.011764705882352941}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}},"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.0031847133757961785},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.023529411764705882}}}}}}}}},"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.03389830508474576},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.041237113402061855},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}},"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.010309278350515464}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"basics/router.html":{"ref":"basics/router.html","tf":0.01},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013729977116704805},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.02572347266881029}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"/":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.014285714285714285},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}}}}}}}},"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.006369426751592357},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009554140127388535},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009554140127388535},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.02}},"e":{"docs":{},"r":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}}},"[":{"docs":{},"\"":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}},"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.0058823529411764705}},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}}},"i":{"docs":{},"f":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}},"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.002288329519450801}}}}}}}}}}}},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}}},"/":{"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.002288329519450801}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01607717041800643}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}},"e":{"docs":{},"t":{"docs":{},"!":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}}}},"q":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.02}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"c":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}}}}},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288}}}}},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006864988558352402},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}},"v":{"docs":{},"i":{"docs":{},"a":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}},"b":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.014705882352941176}}}}},"+":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}},":":{"docs":{},":":{"docs":{},"i":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},"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.0031847133757961785}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}},"]":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}},"}":{"docs":{"./":{"ref":"./","tf":0.009174311926605505}},"]":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}},"c":{"docs":{},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},"d":{"docs":{},"b":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.012345679012345678}},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.018518518518518517}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}},"}":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904}}}},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}},"e":{"docs":{},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.018518518518518517}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}}}}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.020618556701030927}},")":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}}},"s":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}},"}":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}}}}}}}}},"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.002288329519450801}}}}},"docs":{}}}}}},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},"e":{"docs":{},"}":{"docs":{},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}},"y":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}},"c":{"docs":{},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"a":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"basics/router.html":{"ref":"basics/router.html","tf":0.01},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.011441647597254004},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.02572347266881029}},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},"]":{"docs":{},"]":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}},"p":{"docs":{},"i":{"docs":{},"]":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}},"}":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}},")":{"docs":{},"]":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}},"r":{"docs":{},"g":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013729977116704805}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01910828025477707},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.03571428571428571},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01929260450160772}}},"y":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.012861736334405145}},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012738853503184714},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143}}}},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.011764705882352941}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}},"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.009554140127388535}},".":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},"]":{"docs":{},"}":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},"e":{"docs":{},"r":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"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.01694915254237288},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.020618556701030927},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01764705882352941}}}}},"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.006369426751592357}}}}}}}}},"x":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.022727272727272728}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904},"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.030864197530864196}}}}}},"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.01694915254237288},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.020618556701030927},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}},"e":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.018518518518518517},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}},"}":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.01529051987767584},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013729977116704805},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}},"c":{"docs":{},"h":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}},")":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}},"u":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}}}}},"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.01694915254237288},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.020618556701030927},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.00964630225080386},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}},"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.013729977116704805}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.016018306636155607}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.038901601830663615}}}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.030864197530864196}}}},"u":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009153318077803204},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}},"e":{"docs":{},"r":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01910828025477707},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}},"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":{},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}},"]":{"docs":{},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}}},"]":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"1":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}},"docs":{}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"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.005952380952380952}}}}}},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"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.00964630225080386},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013729977116704805}}}}}},"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.002288329519450801}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.022727272727272728}}}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.022727272727272728}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}},"y":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}}}}},"e":{"docs":{},"v":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}},"e":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.009554140127388535}}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}}},"b":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}},"s":{"docs":{},")":{"docs":{},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"y":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.00964630225080386}}}},";":{"docs":{"./":{"ref":"./","tf":0.11314984709480122},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.02976190476190476},"basics/router.html":{"ref":"basics/router.html","tf":0.02},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.1016949152542373},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.13402061855670103},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.12962962962962962},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.17142857142857143},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.2517162471395881},"ring/ring.html":{"ref":"ring/ring.html","tf":0.03821656050955414},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}},">":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.05714285714285714},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01910828025477707},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01764705882352941}}},"[":{"0":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}}},"1":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}},"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.005952380952380952},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904}}}},"p":{"docs":{},"i":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.017857142857142856},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}},"/":{"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.005952380952380952}}}}}}}}}}}}}}}}}},"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.005952380952380952}}},"/":{"docs":{},":":{"docs":{},"d":{"docs":{},"b":{"docs":{},"/":{"docs":{},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009554140127388535},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}},"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.005952380952380952},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}}}},"\"":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}}},"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.006172839506172839}}}},"/":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}},"e":{"docs":{},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}},":":{"docs":{},"d":{"docs":{},"b":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}},"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":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"\"":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}}},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"/":{"docs":{},":":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}}}}}}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}}}}}}}}}},"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.004576659038901602}}}},"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.01},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}}},"\"":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}},"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.005952380952380952}}}}}}}}}}}}},"#":{"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.006369426751592357}}}}}},":":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}},"_":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}},"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.0031847133757961785}},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}},"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.003215434083601286}}}}}}}}}}}}}},"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.0031847133757961785}}}}}},"i":{"docs":{},"r":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}}}}}}}}},":":{"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.011904761904761904}}},"}":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}},"p":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.018518518518518517}},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.012345679012345678}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}},"c":{"docs":{},"c":{"docs":{},"]":{"docs":{},"}":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}}},"d":{"docs":{},"b":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}},"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.011904761904761904}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"p":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},"e":{"docs":{},"s":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}},"d":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}},"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.005952380952380952}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.03}},"s":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.04}}}}}}}},"%":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006864988558352402}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}},"]":{"docs":{},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}},"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.006430868167202572}}}}}}}}},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}}}}}}}}},"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.002288329519450801}}}}}}}}},"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.002288329519450801},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},"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.002288329519450801}}}}}}}}}}}}}}},"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.003215434083601286}}}}}}}}}}}}}}}}}}}}}}}},"#":{"docs":{},"(":{"docs":{},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}}}}}}}},"{":{"docs":{},":":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}},"{":{"docs":{},"{":{"docs":{},":":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}},"a":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},"d":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.018518518518518517}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}},"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.003215434083601286}}}}}},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01910828025477707},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}},"l":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}},"c":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.012345679012345678}}}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},"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.0029411764705882353}}}}}}}}}}},"i":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}},"c":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},"u":{"docs":{},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"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.005952380952380952},"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}},"s":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}}},"s":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}},"s":{"docs":{},"k":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}}}}}},"w":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"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.002288329519450801}}}}},"9":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}},"docs":{}},"2":{"0":{"docs":{},"\"":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}},"docs":{}},"docs":{}}}}},"t":{"docs":{},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006864988558352402}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}},"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.3672316384180787},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.3436426116838485},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009554140127388535},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},"i":{"docs":{},"c":{"docs":{"basics/":{"ref":"basics/","tf":10.071428571428571},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}}}},"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.002288329519450801}}}}}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},"d":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}}}}},".":{"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":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}}}}}}}}}}}}}}},"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.002288329519450801}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}}},"o":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01607717041800643},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.011764705882352941}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/":{"ref":"ring/","tf":0.1111111111111111},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":5.02572347266881},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.03529411764705882}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}},"]":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.029411764705882353}}}}}}},"m":{"docs":{},"p":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"ring/":{"ref":"ring/","tf":0.1111111111111111},"ring/ring.html":{"ref":"ring/ring.html","tf":0.009554140127388535},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":5.011764705882353}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}},"r":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}},"o":{"docs":{},"j":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"advanced/":{"ref":"advanced/","tf":0.14285714285714285},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":5.0285714285714285},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}},"s":{"docs":{},":":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.014285714285714285}}},"!":{"docs":{},")":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}},"i":{"docs":{},"t":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}},"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}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}},"j":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.014285714285714285},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}}}}},"d":{"docs":{},"e":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}},"l":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},".":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}},"q":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"basics/router.html":{"ref":"basics/router.html","tf":0.02},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}}},"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.01},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464},"basics/route_data.html":{"ref":"basics/route_data.html","tf":5.018518518518518},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.012861736334405145},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}},",":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}},":":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}}}}},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},"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.005952380952380952},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.00964630225080386},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},"i":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}},"v":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904}},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}},"l":{"docs":{},"i":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/":{"ref":"basics/","tf":0.07142857142857142},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":5.0227272727272725},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}},"d":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.009174311926605505}}}}}}},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/":{"ref":"ring/","tf":0.1111111111111111},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":5.014285714285714}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288}}}}},"b":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}}}},"e":{"docs":{},"x":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}},"c":{"docs":{},"t":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}},"s":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/":{"ref":"ring/","tf":0.1111111111111111},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":5.014285714285714},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}},"r":{"docs":{},"n":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}}},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.04},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},"/":{"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.002288329519450801}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}},"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.010309278350515464},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},"e":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}},"s":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}},"t":{"docs":{},"c":{"docs":{},".":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"f":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}},",":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}},"l":{"docs":{},"s":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},"e":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}},"i":{"docs":{},"l":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.011441647597254004}},"s":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},".":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.05102040816326531},"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}},".":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}}}}}},"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.0031847133757961785}},"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.03821656050955414},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}}}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}}}}},"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.0031847133757961785}}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}}},"]":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.02857142857142857}},")":{"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.0031847133757961785}}}}}},"]":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},"]":{"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.005952380952380952},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.014285714285714285}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"]":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}}}}}},"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.005952380952380952}}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}},"/":{"docs":{},"m":{"docs":{},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}},"n":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},"t":{"docs":{"./":{"ref":"./","tf":10.003058103975535}}}}}}}},"?":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}},"}":{"docs":{},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"f":{"docs":{},"o":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}},"r":{"docs":{},"m":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}}}}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006864988558352402}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}}},"t":{"docs":{},"'":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}},"?":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}},"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.003215434083601286}},"t":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.03409090909090909},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}}},"n":{"docs":{},"k":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}},"e":{"docs":{},"t":{"docs":{},"'":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},"s":{"docs":{},"s":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}},"o":{"docs":{},"o":{"docs":{},"k":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},"u":{"docs":{},"p":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}},"g":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.03389830508474576},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.030927835051546393},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.022727272727272728},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.014285714285714285},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.029411764705882353}},"?":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288}}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288}}}},"s":{"docs":{},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},".":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}},"p":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},".":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}},"n":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}},"i":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.012345679012345678},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.04081632653061224},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"ring/ring.html":{"ref":"ring/ring.html","tf":0.028662420382165606},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01764705882352941}},".":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},"s":{"docs":{},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}}},"r":{"docs":{},"g":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}},"e":{"docs":{},".":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}}},"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.1111111111111111},"ring/ring.html":{"ref":"ring/ring.html","tf":0.028662420382165606},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":5.020588235294118}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}}}}}}}}}}},"s":{"docs":{},"s":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682}}}}},"d":{"docs":{},"e":{"docs":{},"?":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}},".":{"docs":{},"\"":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.014285714285714285}}}}}}}}},"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.04},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.38487972508591},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.022727272727272728},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},"]":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}},"!":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}},".":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}},"s":{"docs":{},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}},"i":{"docs":{},"v":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.027522935779816515},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.03389830508474576},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}},",":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.020618556701030927},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.012345679012345678},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}},"e":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"ring/":{"ref":"ring/","tf":0.1111111111111111},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":5.022508038585209}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}},"s":{"docs":{},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}},".":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}}}}},"s":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}}}}}},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},",":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288}}}}}}}}}}}}},"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.017857142857142856},"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.468926553672316},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.020618556701030927},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.022727272727272728},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}},",":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}},"]":{"docs":{},")":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}}}},"s":{"docs":{},"s":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"g":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}},"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.003215434083601286}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"a":{"docs":{},"m":{"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.005952380952380952}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},".":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.02}}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}},",":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.020618556701030927},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"s":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},"l":{"docs":{},"n":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}},"e":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006864988558352402}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}}},"r":{"docs":{},"f":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}},"o":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}},"r":{"docs":{},"]":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}},",":{"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.01}},")":{"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.02},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},"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.01694915254237288}}}}}}},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}}}}}},"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.003215434083601286}}}}}}}}}}}}}}}}}}},"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.003215434083601286}}}}}}}}}}}}}}}}}}}},":":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}},"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.0031847133757961785}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.022292993630573247},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.014285714285714285},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01607717041800643},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.03235294117647059}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.01764705882352941}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}},"}":{"docs":{},"]":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}},"i":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}},"v":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}},"t":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01607717041800643},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.05}},"e":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}},")":{"docs":{},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}},"s":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}}}}}},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}}}}}}},"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.01694915254237288},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"s":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}},"l":{"docs":{},"e":{"docs":{},"v":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/":{"ref":"ring/","tf":10.222222222222221},"ring/ring.html":{"ref":"ring/ring.html","tf":5.022292993630574},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},"]":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.01834862385321101},"basics/":{"ref":"basics/","tf":0.2857142857142857},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":5.0773809523809526},"basics/router.html":{"ref":"basics/router.html","tf":0.07},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":3.3672316384180787},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":3.38487972508591},"basics/route_data.html":{"ref":"basics/route_data.html","tf":5.030864197530864},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"advanced/":{"ref":"advanced/","tf":0.2857142857142857},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":5.057142857142857},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":5.034324942791762},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.11224489795918367},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01910828025477707},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.03235294117647059}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.03669724770642202},"basics/":{"ref":"basics/","tf":0.14285714285714285},"basics/router.html":{"ref":"basics/router.html","tf":10.07},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.05084745762711865},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.041237113402061855},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.024691358024691357},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":5.159090909090909},"advanced/":{"ref":"advanced/","tf":0.14285714285714285},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.02142857142857143},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":5.040816326530612},"ring/":{"ref":"ring/","tf":0.1111111111111111},"ring/ring.html":{"ref":"ring/ring.html","tf":5.009554140127388},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},")":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}}},":":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.02}}},",":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143}}},"s":{"docs":{},".":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.03409090909090909},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}},":":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.014285714285714285},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},",":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}},")":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}},":":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}},".":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.013729977116704805}}}}}},",":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}},"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.0031847133757961785}}},",":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}},")":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288}}}}}}}},"l":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}},"s":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}},":":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}},"]":{"docs":{},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}}}}}}},"a":{"docs":{},"w":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"basics/router.html":{"ref":"basics/router.html","tf":0.03},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},")":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}}}}},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}}},"u":{"docs":{},"n":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"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.005952380952380952},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}},"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}}}}}},"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.0031847133757961785}}}}}}},"i":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}}}},"b":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}},"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.005952380952381}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},".":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}}},"t":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}},"]":{"docs":{},")":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.018518518518518517}},"}":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}},")":{"docs":{},"}":{"docs":{},")":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},"]":{"docs":{},")":{"docs":{},")":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}}}}},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}},"u":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}},"r":{"docs":{},"t":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}},"]":{"docs":{},")":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}},"/":{"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.002288329519450801}}}}}}}}}}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.016018306636155607},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.00964630225080386}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009153318077803204}}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}},"/":{"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.006430868167202572}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}},"w":{"docs":{},"a":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}},"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.010309278350515464}}}},"e":{"docs":{},"e":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},":":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},"s":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}},"]":{"docs":{},")":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}},"d":{"docs":{},"o":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}},"p":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}},",":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}},"w":{"docs":{},"o":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288}}}}},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464},"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}},"n":{"docs":{},":":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}},"r":{"docs":{},"d":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/router.html":{"ref":"basics/router.html","tf":0.01},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.03409090909090909},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009153318077803204},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},"e":{"docs":{},"r":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904}}},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904}}}}}}},"d":{"docs":{},".":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}}},"n":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0030581039755351682},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.012861736334405145},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.008823529411764706}},".":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},"l":{"docs":{},"d":{"docs":{},"s":{"docs":{},".":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}}}}},"a":{"docs":{},"r":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}},"y":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}},"?":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009153318077803204}}}}}}},"{":{"2":{"0":{"0":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}},"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.005952380952380952}}}}},"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.006369426751592357},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.009174311926605505},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.020618556701030927}}},"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.03571428571428571},"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.043209876543209874}}}}}}}}}}}}},"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.017857142857142856},"ring/ring.html":{"ref":"ring/ring.html","tf":0.012738853503184714},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.01529051987767584},"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904},"basics/router.html":{"ref":"basics/router.html","tf":0.02},"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.020618556701030927},"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}},"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.01910828025477707},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364},"ring/ring.html":{"ref":"ring/ring.html","tf":0.01910828025477707},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.03571428571428571},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.012861736334405145}}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904}}}}},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.006172839506172839},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}}}},"d":{"docs":{},"b":{"docs":{"basics/route_data.html":{"ref":"basics/route_data.html","tf":0.030864197530864196}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}}}}}}},":":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143}}}}}}},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}},"t":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.01607717041800643}}}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.00964630225080386}}}},"}":{"docs":{"./":{"ref":"./","tf":0.0061162079510703364}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}},"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.005952380952380952}},">":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.05102040816326531},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}},"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.008823529411764706}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.011904761904761904},"basics/router.html":{"ref":"basics/router.html","tf":0.03},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.02040816326530612},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},".":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}},"s":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}}}},"m":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},"n":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}},"s":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}},"]":{"docs":{},"}":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}},"]":{"docs":{},"]":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},")":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}},"n":{"docs":{"basics/path_based_routing.html":{"ref":"basics/path_based_routing.html","tf":0.01694915254237288},"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.022727272727272728},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"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.006172839506172839}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"*":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}},"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.0058823529411764705}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}},"s":{"docs":{},",":{"docs":{"basics/route_syntax.html":{"ref":"basics/route_syntax.html","tf":0.005952380952380952}}}},".":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}}},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},":":{"docs":{"basics/name_based_routing.html":{"ref":"basics/name_based_routing.html","tf":0.010309278350515464}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.022727272727272728},"advanced/":{"ref":"advanced/","tf":0.14285714285714285},"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":5.004576659038902},"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306}}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.006864988558352402}}},"u":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}}}}}}}},"i":{"docs":{},"a":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.007142857142857143},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286},"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0058823529411764705}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}},"n":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},"e":{"docs":{},"r":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.007142857142857143}}}}},":":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"ring/dynamic_extensions.html":{"ref":"ring/dynamic_extensions.html","tf":0.02142857142857143}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"advanced/configuring_routers.html":{"ref":"advanced/configuring_routers.html","tf":0.01020408163265306},"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.003215434083601286}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"basics/router.html":{"ref":"basics/router.html","tf":0.01}}}}}},",":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}},"s":{"docs":{},":":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"basics/different_routers.html":{"ref":"basics/different_routers.html","tf":0.011363636363636364}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}},"/":{"docs":{},"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.010309278350515464}}}}}}}}}}}}}}},":":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.014285714285714285}}}}}},"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":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.02857142857142857}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{},"/":{"docs":{},":":{"docs":{},"b":{"docs":{},"u":{"docs":{},"l":{"docs":{},"k":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.02857142857142857}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"*":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"advanced/route_conflicts.html":{"ref":"advanced/route_conflicts.html","tf":0.02857142857142857}}}}}}}}}}}}}}},"^":{"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.006172839506172839}}}}}}}}},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{},"^":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.004576659038901602}}}}}}}},"%":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009153318077803204},"ring/ring.html":{"ref":"ring/ring.html","tf":0.006369426751592357}},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.009153318077803204}},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}},")":{"docs":{},")":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}},"]":{"docs":{},")":{"docs":{"advanced/route_validation.html":{"ref":"advanced/route_validation.html","tf":0.002288329519450801}}}}}}},"`":{"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.002288329519450801}}}}}}}}}},".":{"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.0058823529411764705}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"ring/ring.html":{"ref":"ring/ring.html","tf":0.0031847133757961785}}}}}},"x":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}},"y":{"docs":{},")":{"docs":{},"}":{"docs":{},"}":{"docs":{},")":{"docs":{},"}":{"docs":{},"}":{"docs":{},"]":{"docs":{},"]":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}}}}}}}},"]":{"docs":{},"}":{"docs":{"ring/parameter_coercion.html":{"ref":"ring/parameter_coercion.html","tf":0.006430868167202572}}}},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}}}},"_":{"docs":{},"]":{"docs":{"ring/compiling_middleware.html":{"ref":"ring/compiling_middleware.html","tf":0.0029411764705882353}}}}},"length":1521},"corpusTokens":["\"/\"","\"/\"))","\"/\")))","\"/\"))))","\"/api/admin/db\"})","\"/api/admin/db/:db/drop\"","\"/api/admin/db/users/drop\")","\"/api/admin/db/users/drop\"}","\"/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\",","\"/favicon.ico\"})","\"/hello\")","\"/ping\"","\"/ping\"})","\"0.1.0","\"0.1.123\"]","\"0.3.0\"]","\"0.3.3\"]","\"1\"}","\"1\"})","\"1\"}}","\"1.9.0","\"1.9.660\"]","\"everyth","\"forbidden\"}","\"gener","\"ok\",","\"ok\"}","\"ok\"})","\"ok\"}))","\"pluggabl","\"tenant1\"","\"users\"}","#'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","'[expound.alpha","'[reitit.coercion","'[reitit.coercion.spec","'[reitit.cor","'[reitit.r","'[reitit.spec","'[reitit.spec])","'[spec","'add","'get","(","(*","(*path).","(+","(:api","(:id)","(:request","(?","([\"/api\"","([\"/get","([...","([request","([request]","(and","(app","(blank?","(cat","(clojur","(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","(e.g.","(effect","(fn","(fnil","(for","(handler","(if","(let","(match","(middleware/cr","(name","(nilabl","(non","(not","(onli","(option","(or","(r/match","(r/partial","(r/rout","(r/router","(records,","(reitit/match","(reitit/rout","(reitit/routes))","(requir","(respons","(ring/get","(ring/r","(ring/rout","(rout","(router","(s/def","(s/explain","(s/key","(s/valid?","(seq","(set!","(set/intersect","(some","(st/spec","(start","(stest/instru","(str","(updat","(via","...","...])","/:user","/:version/statu","/api/user/:id:","/bulk/:bulk","/public/*path","1,","1.8)","1.9.0","2","200","200,","2})","2},","2}})","3","3}}","403,","4x","50%","::acc","::admin]","::admin}]","::coerc","::db","::db]","::db]]","::db]}","::db}]","::dev","::drop","::i","::ipa)","::order","::ping","::ping)","::ping))","::ping]","::ping]]","::ping}","::ping}]","::ping}]]","::pong}]]","::request","::request}","::respons","::response}}","::role","::roles)]","::spec/raw","::tenant1])","::total","::user","::user)","::user))","::user]]]))","::users]","::users}]","::x","::y]))",":a",":admin",":admin]]}",":admin}",":api)]}",":api]]",":api]]}",":arg",":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",":displace.",":expand",":form,",":gen",":gen.",":get",":get,",":handler",":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/tenant1",":user/tenant1]",":user/user]",":user/user}",":user/user},",":user/user}]]",":wrap",":wrap.",":y",";","=","=>",">","?arg","[\"\"","[\"/:db\"","[\"/:user","[\"/:version/status\"]])","[\"/add","[\"/admin\"","[\"/api\"","[\"/api/:version/ping\"]]","[\"/api/admin/db\"","[\"/api/admin/db/:db/drop\"","[\"/api/admin/db/:db/stats\"","[\"/api/admin/users\"","[\"/api/orders/:id\"","[\"/api/ping\"","[\"/api/user/:id\"","[\"/bulk/:bulk","[\"/db\"","[\"/dev","[\"/drop\"","[\"/ping\"","[\"/ping\"]","[\"/pong\"","[\"/pong\"]]","[\"/public\"","[\"/public/*path\"]","[\"/stats\"","[\"/user/:id\"","[\"/users\"","[\"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\"","[[\"/ping\"","[[\"/ping\"]","[[\"/users/:us","[[#object[user$wrap]","[[:queri","[[type","[[wrap","[])","[]))","[]}}]]","[_]","[action","[add","[clojur","[coercer","[coercion/gen","[expound","[get","[handler","[handler]","[interceptor]}}])","[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)","acc","access","accumul","act","action","actual","ad","add","admin}","admin}}","adopt","advanc","allow","alpha17\"]","alpha19\"]","alpha20\"]","anonym","api.","app","app:","append","appli","applic","approaches,","arbitrari","arg","args.","argument","arguments:","ariti","ask","async","at:","author","avail","awesom","base","basic","befor","below","best","better.","bi","bootstrapping:","both","build","built","call","callback.","catch","chain","child","class","clojur","clojure(script)","clojure.core/string?","clojure.lang.exceptioninfo:","clojure.spec","clojurescript,","closur","code","code,","coerc","coercer","coercion","coercion,","coercion.","coercion/gen","coercion])","collections,","compil","compilation,","compiled.","compiler,","compilerexcept","compojur","configur","conflicit","conflict","conflicts!)","conflicts:","conform","conj","contain","correctly:","cqr","creat","created.","creation","custom","data","data,","data:","database),","db","db)","db]","db}","db}]","default","default,","defin","defined,","defined.","definit","demonstr","depend","dependeci","descript","detect","dev","develop","didn't","differ","direct","directli","done","driven","dynam","easi","easier","effect","element","else\")","enabl","enforc","ensur","error","especi","etc.)","ex","exact","exampl","except","exceptioninfo","expan","expand","expect","explicit","expound","expound/printer)","expound])","extend","extens","extern","extract","fail","fails,","fals","false)","fast","fast,","faster","fastest","first","flatten","flattened:","follow","following:","format","found.","function","function,","function.","functions,","functions.","futur","gen","gener","get","go:","good,","guard","handl","handler","handler:","handler]","handler])))","handler]]]]","handlers,","handlers.","handler}])))","handler}]]])))","handler}}]]])))","hash","hook","hook)","id","id\"]","id)","id))","id)))","id))))","id/ord","id/orders\"]","id]","id]]))","id}","id},","ignored.","implemen","implement","implementation.","in:","info","inform","initi","inject","inspect","instead","instrument","int?)","int?))","int?,","int?}}","int?}}}","interceptor","interceptor))","interceptor/middlewar","interceptor]","intern","interpret","introduc","introduct","it'","it.","it?","itself.","key","key,","keys:","keyword","kind","know","less","let'","level","librari","link","list","log","look","lookup","mani","manual","map","map,","map.","match","match)","match,","match.","match?","matched,","matches,","merg","merge.","message.","meta","meta,","method","method.","methods.","middlewar","middleware,","middleware.","middleware:","miss","mode?","mode?]","more.","mount","mount.\"","multipl","naiv","name","name!","name.","name:","name]","names:","namespac","need","nest","nil","nil,","nil]","node.j","normal","note","note:","on","opt","optim","optin","option","option.","options.","opts)","opts)]","opts]}","order\"","order]]","order]}}])","origin","otherwis","out*","overrid","overridden","param","paramet","parameter:","parameters.","parameters:","params]))","partial","partialmatch,","pass","path","path,","path])","pedest","perf","pluggabl","po","pre","predicate:","pretti","print","println","problems.","processing.","programamtically:","project:","protocol,","protocol.","protocol:","provid","public","r])","raise))))))","raise)))))))}))","raise]","raw","readi","reason","record","recurs","regress","reitit","reitit,","reitit.coercion.protocol/coercion","reitit.coercion.spec/speccoercion","reitit.coercion:","reitit.core/expand","reitit.core/expand)","reitit.core/match","reitit.core/rout","reitit.core/router:","reitit.core/throw","reitit.ring/get","reitit.ring/rout","reitit.spec","reitit/conflict","reitit])","relev","removed.","request","request)","request)))","request))))","request)))))","request.","request}]","requir","required)","resolut","resolv","respond","respons","response)]","response]","responses)","result","resut","retriev","return","revers","ring","ring,","ring])","role","roles)))","roles:","roles]}})))","rout","route))))","route,","route.","route:","router","router)","router,","router:","routes)","routes):","routes,","routes.","routes:","routing)","routing,","routing.","routing:","run","runtim","s/*explain","s])","same","satisfi","select","sequential)","set","set])","sever","shape","ship","shipped,","side","simpl","singl","small","snapshot\"]","someth","sourc","spec","spec/coercion}})))","spec:","spec])","specs.","st])","start","stats]]]]]))","stats}]]","statu","stest])","still,","str)})","string","string}","string}}","stuctur","submap","succeeds,","suitabl","support","swagger:","syntax","system.","take","tests.","thing","third","throw","thrown.","thrown:","time","time.","to,","to:","todo","too.","too:","tool","tools\"","tools.cor","tools])])","top","transform","tree","tree:","true","two","type","un","under","understood","unmount","unreach","until","us","used.","user","user\"","user]","user]}}]","usually,","val:","valid","valu","values.","vector","vector.","vectors,","version","version:","via","warning.","way","with?","without","work","worlds.","wrap","wrap.","written","x","y)}})}}]]","y]}","yield","{200","{::role","{:bodi","{:conflict","{:db","{:get","{:handler","{:id","{:interceptor","{:meta","{:middlewar","{:name","{:paramet","{:post","{:request","{:role","{:schema","{:statu","{:total","{:x","{method","{rout","{}"],"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\nDifferent Routers\n\n"},"basics/route_syntax.html":{"url":"basics/route_syntax.html","title":"Route syntax","keywords":"","body":"Route Syntax\nRaw routes are defined as vectors, which have a String path, optional (non-sequential) route argument and optional child routes. Routes can be wrapped in vectors and lists and nil routes are ignored. Paths can have path-parameters (:id) or catch-all-parameters (*path).\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\nAs routes are just data, it's easy to create them programamtically:\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 to do actual routing, we need a Router satisfying the reitit.core/Router protocol. Routers are created with reitit.core/router function, taking the raw routes and optionally an options map. Raw routes gets expanded and optionally coerced and compiled.\nRouter 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\nRouter flattens the raw routes and expands the route arguments using reitit.core/Expand protocol. By default, Keywords are expanded to :name and functions are expaned to :handler. nil routes are removed. The expanded routes can be retrieved with router:\n(r/routes router)\n; [[\"/api/ping\" {:name :user/ping}]\n; [\"/api/user/:id\" {:name :user/user}]]\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\n(r/match-by-path router \"/hello\")\n; nil\n\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 routing\nAll routes which :name route data defined, can be matched by name.\nListing all route names:\n(r/route-names router)\n; [:user/ping :user/user]\n\nMatching by name:\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\nWe only got a partial match as we didn't provide the needed path-parameters. Let's provide the them too:\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\nRoutes can have arbitrary meta-data, interpreted by the router (via it's :compile hook) or the application itself. For nested routes, route data is accumulated recursively using meta-merge. By default, it appends collections, but it can be overridden to do :prepend, :replace or :displace.\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 [\"/:db\" {:parameters {:db String}}\n [\"/drop\" ::drop-db]\n [\"/stats\" ::db-stats]]]]]))\n\nResolved route tree:\n(reitit/routes router)\n; [[\"/api/ping\" {:interceptors [::api]\n; :name ::ping}]\n; [\"/api/admin/users\" {:interceptors [::api]\n; :roles #{:admin}\n; :name ::users}]\n; [\"/api/admin/db/:db/drop\" {:interceptors [::api ::db]\n; :roles #{:db-admin}\n; :parameters {:db String}\n; :name ::drop-db}]\n; [\"/api/admin/db/:db/stats\" {:interceptors [::api ::db]\n; :roles #{:db-admin}\n; :parameters {:db String}\n; :name ::db-stats}]]\n\nRoute data is returned with Match and the application can act based on it.\n(r/match-by-path router \"/api/admin/db/users/drop\")\n; #Match{:template \"/api/admin/db/:db/drop\"\n; :meta {:interceptors [::api ::db]\n; :roles #{:db-admin}\n; :parameters {:db String}\n; :name ::drop-db}\n; :result nil\n; :params {:db \"users\"}\n; :path \"/api/admin/db/users/drop\"}\n\n"},"basics/different_routers.html":{"url":"basics/different_routers.html","title":"Different Routers","keywords":"","body":"Different Routers\nReitit ships with several different implementations for the Router protocol, originally based on the awesome Pedestal implementation. router selects the most suitable implementation by inspecting the expanded routes. The implementation can be set manually using :router ROUTER OPTION.\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\nFastest 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 CONFLICTING ROUTES.\n\n\n:prefix-tree-router\nTODO\n\n\n\nThe router name can be asked from the router\n(r/router-name router)\n; :mixed-router\n\n"},"advanced/":{"url":"advanced/","title":"Advanced","keywords":"","body":"Advanced\n\nRoute conflicts\nRoute Validation\nConfiguring routers\n\n"},"advanced/route_conflicts.html":{"url":"advanced/route_conflicts.html","title":"Route conflicts","keywords":"","body":"Route conflicts\nMany routing libraries allow single path lookup could match multiple routes. Usually, first match is used. This is not good, especially if route tree is merged from multiple sources - routes might regress to be unreachable without a warning.\nReitit resolves this by running explicit conflicit resolution when a Router is created. Conflicting routes are passed into a :conflicts callback. Default implementation throws ex-info with a descriptive message.\nExamples routes with conflicts:\n(require '[reitit.core :as reitit])\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(reitit/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(reitit/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/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\"]\n[org.clojure/clojure \"1.9.0-alpha19\"]\n[clojure-future-spec \"1.9.0-alpha17\"] (Clojure 1.8)\n\nAt runtime\nIf route trees are generated at runtime (e.g. from external source like the database), one can use directly the clojure.spec functions.\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\"]\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\n(reitit/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"},"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"},"ring/":{"url":"ring/","title":"Ring","keywords":"","body":"Ring\n\nRing-router\nDynamic extensions\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:\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\nReverse 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, with a vector value of the following:\n\nring 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 dynamic 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/intersection 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/parameter_coercion.html":{"url":"ring/parameter_coercion.html","title":"Parameter coercion","keywords":"","body":"Parameter coercion\nReitit provides pluggable parameter coercion via reitit.coercion.protocol/Coercion protocol, originally introduced in compojure-api. Reitit ships with reitit.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-alpha20\"]\n[org.clojure/spec.alpha \"0.1.123\"]\n[metosin/spec-tools \"0.3.3\"]\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.\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.coercion :as coercion])\n(require '[reitit.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\n(require '[reitit.ring :as ring])\n(require '[reitit.coercion :as coercion])\n(require '[reitit.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 meta-data extensions are a easy way to extend the system. Routes meta-data can be transformed into any shape (records, functions etc.) in route compilation, enabling fast access at request-time.\nStill, we can do better. As we know the exact route that interceptor/middleware is linked to, we can pass the (compiled) route information into the interceptor/middleware at creation-time. It can extract and transform relevant data just for it and pass it into the actual request-handler via a closure - yielding faster runtime processing.\nTo do 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. Why mount a wrap-enforce-roles middleware for a route if there are no roles required for it?\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.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 does not mount.\"\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 coerced (coerce-response coercers request response)]\n (coerce-response coercers request (handler request)))\n (handler request))))\n ([request respond raise]\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 coerced (coerce-response coercers request response)]\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 2-4x faster on basic perf tests.\n"}}}