いいかんじの URL を実装したい in Ruby
- May を汎用的なスクリプトにしたい。公開したい。
- 簡単な WAF を書いて、それで実装しよう。
- URL ルーティングどうしよう。
こんなかんじ。 Ruby で書くんだし、ブロックをうまく使いたいとおもっている。あと、明らかに車輪の再発明くさいけど、 Ruby への理解を深めるという有意義な再発明なので気にしない。なんにせよ Rails はおれにとって現実的じゃない (XREA で動かすには CGI になるけど、クソ重いのは自明) ので、 Rails という選択肢は無い。
Catalyst の URL ルーティングがすっきりしているんだけど、 attribute 相当のものが Ruby にあるのかどうかわからない…というか、いまいち attribute がわからない。でも、 Catalyst の勉強をしたいわけじゃないので放っておく。こんなことしてるから経験値たまらないのかなあ。
class WebApp def edit(*params) # ... end def delete(*params) # ... end end
こんな感じで /webapp/edit/doc.345.html
にリクエスト送ると doc.345.html
が引数に WebApp#edit
が呼ばれるようなかんじにしたい。もしも、WebApp#edit
を /webapp/update/doc.345.html
みたいな URL で呼びたかったら、 alias :update :edit
とでもしてあげたらいい。
いまいち具体例が思いつかないけど、 Ruby のメソッドでカバーできないアクションを定義したいとき ([0-9]からはじまるとか) は Object#method_missing
を使ってうまくやってやる。とか、どうだろう。あんまりヘンなことを自前で実装するより Ruby にもともとある機能であれこれするほうが勉強にもなるんじゃないか、とかおもう。