もはや誰も望んでいなさそうなSinatraの細かいネタですがねちねちと続けます。 今回は、前回作った自作のbefore_filterを使った場合と、使わずに直接beforeメソッドを使った場合とで、コードがどう変わるか、簡単に比較してみる。 まずは使わない場合から。 before do if request.path_info =~ /^\/admin\// if not login_as_admin? throw :halt, "required admin privilege." end end end まぁこんなもんかなぁという感じ。個人的には/^\/admin\//という正規表現はあまり読みやすいとは思えないけど、他の部分は特に文句はない。request.path_infoにパス情報が入っているので、それを正規表現でチェックして、フィルタ対象のURLである場合にはさらにadmin権