sinatrarb fliter
https://sinatrarb.com/intro.html
<span class="n">在路由使用fliter
before</span> <span class="ss">:agent</span> <span class="o">=></span> <span class="sr">/Songbird/</span> <span class="k">do</span>
<span class="c1"># ...</span>
<span class="k">end</span>
<span class="n">after</span> <span class="s1">'/blog/*'</span><span class="p">,</span> <span class="ss">:host_name</span> <span class="o">=></span> <span class="s1">'example.com'</span> <span class="k">do</span>
<span class="c1"># ...</span>
<span class="k">end</span>
例如:
<span class="n">before</span> <span class="k">do</span>
<span class="vi">@note</span> <span class="o">=</span> <span class="s1">'Hi!'</span>
<span class="n">request</span><span class="p">.</span><span class="nf">path_info</span> <span class="o">=</span> <span class="s1">'/foo/bar/baz'</span>
<span class="k">end</span>
<span class="n">get</span> <span class="s1">'/foo/*'</span> <span class="k">do</span>
<span class="vi">@note</span> <span class="c1">#=> 'Hi!'</span>
<span class="n">params</span><span class="p">[</span><span class="s1">'splat'</span><span class="p">]</span> <span class="c1">#=> 'bar/baz'</span>
<span class="k">end</span>
<span class="k">或者进行身份验证:</span>
<span class="n">before</span> <span class="s1">'/protected/*'</span> <span class="k">do</span>
<span class="n">authenticate!</span>
<span class="k">end</span>
<span class="n">after</span> <span class="s1">'/create/:slug'</span> <span class="k">do</span> <span class="o">|</span><span class="n">slug</span><span class="o">|</span>
<span class="n">session</span><span class="p">[</span><span class="ss">:last_slug</span><span class="p">]</span> <span class="o">=</span> <span class="n">slug</span>
<span class="k">end</span>
</div>
</div>
</div>