Hikiを読む(3)

Rubyで書かれたWikiエンジン、Hikiを読んでみます。今回は動かしながら研究します。

  • まず、動かしました。
    • Windowsで/usr/bin/envがなかったのでちょっと手間取ったけれど、動きました。
  • .htaccessで、設定ファイルを個別にdeny from allしています。なるほど。
  • hiki/messagesの下に、en.rb, ja.rbなどのメッセージファイル(Rubyのプログラム)があります。Messageというモジュールになっている。なるほど。
  • データベースでYAMLで保存するというのはないのかしらん。
  • ri PStoreを読みました。バイナリファイルができます。
  • ri CGIを読みながら、ri CGI::HtmlExtensionを読みます。
  • CGI::HtmlExtension
    • "Modules Http3, Http4..."と書いてあるのはtypoかもしれません。
  • くたびれたのでここまで。
  • cgi.params["rubyco"].classはArrayなんですね。

elseとensure

Rubyの例外処理で、elseはrescueしなかった場合だけ実行します。ensureはrescueしてもしなくても実行します。

for i in 1..3
    begin
        puts "i = #{i}"
        if i == 1
            raise SystemCallError, "one";
        elsif i == 2
            raise StandardError, "two";
        end
    rescue SystemCallError => e
        puts "SystemCallError> $! = #{$!}, e = #{e}"
    rescue StandardError => e
        puts "StandardError> $! = #{$!}, e = #{e}"
    else
        puts "else"
    ensure
        puts "ensure"
    end
end

実行結果です。

i = 1
SystemCallError> $! = unknown error - one, e = unknown error - one
ensure
i = 2
StandardError> $! = two, e = two
ensure
i = 3
else
ensure