Hiki の Plugin クラスで、@page はどこで定義されているんだろうと しばらく悩んでいましたが、 Plugin#initialize の
options.each_key do |opt| eval("@#{opt} = options['#{opt}']") unless opt.index('.') end
で定義されているというのが正解でした。
かずひこさんからお誘いいただきまして、Hiki の コミッタになりました。
うまく務まるだろうかと結構ドキドキものなんですが、 いろいろと contribute していきたいと思ってますのでよろしくお願いします。
とりあえず小ネタとして、URL リンクを class="external" にする修正を コミットしてみました。
Ruby とのつきあいももう数年になりますが、実は unless が未だに苦手です。 上の unless opt.index('.') というのも、opt に '.' が含まれるときなのか 含まれないときなのか、5秒くらい考えないと分かりません。
何でだろうなと考えてみるんですが、条件を自分でひっくり返すのに 慣れていないのが原因な気がします。
「unless opt.index('.')」→「次が成りたたないとき: opt に index が含まれる」→「opt に index が含まれないとき」 この2つ目の矢印の部分で思考が止ってしまいます。書いてみると何でもないようなことなんですけどね。
自分で書くときは、if opt.index('.').nil? と書くことが多い気がします。 これだと、「次が成り立つとき: opt に '.' がなかった」と スムーズに頭に入ってきます。