2005-10-28
[Ruby] BitChannel を読む (2)
def _handle(req) mid = "handle_#{req.cmd || 'view'}" return nil unless respond_to?(mid, true) __send__(mid, req) end
handler.rb にあるメソッド。
req.cmd || 'view'
にあるような || の使い方がいろいろなところで発見できる。これまで自分はこういうケースを
req.cmd ? req.cmd : 'view'
などと書いてしまっていた。これじゃ Dry に反している。
この _handle メソッドが cmd に与えられた文字列から各種コマンドに対応するメソッド、そして WikiPage クラスを呼び出している。なので handle_diary メソッドや DiaryPage クラス、 テンプレートになる diary.rhtml を追加すれば日記ページが作れそうだ。
--
いままで他人のソースを見るのが嫌いでソースを読むことを避けていたが、今回はソースを読むのがすごく楽しい。職場で見かけるソースとはまったく違ってものすごく読みやすく理解しやすい。この分なら以前から目標にしていた Lily と Nadoka のソース読みも楽しくできるかもしれない。