2008-05-01から1ヶ月間の記事一覧

Ramazeさんアプリのスペックの書き方: XPath を使いましょう

Ramazeさんアプリのスペック(なお Ramaze さんは RSpec じゃなくて Bacon を使っています、とっても似てるけど微妙に文法が違うので注意して下さい)を書く時には XPath を使いましょう。例えば次のような簡単というかどうしもないアプリケーションを作成した…

abort_on_exception が true である時に注意すべきこと

Thread.abort_on_exception や Thread#abort_on_exception が true の時、スレッドが例外を起こして終了した場合にはインタプリタ全体が停止します。ただし Thread#join した時には、例外が再びカレントスレッドに投げられます。でも、ruby1.8 と 1.9 ではそ…

Safe level 4 環境と -d オプションの喧嘩

Ruby の Safe level 4 環境に関するバッドノウハウ!例えば以下のようなスクリプト(test.rb)を考えます。 thread = Thread.new do $SAFE = 4 @aaa end thread.join puts "finished" これを実行します。 % ruby test.rb finished無事に終了しました。ところが…

Safe level 4 からの脱出

Rubyでは、一度セーフレベル4に設定してしまうと、そこからセーフレベルを0などに変更することは出来ません。しかし場合によってはどうしてもセーフレベル4環境から一時的に脱出したい場合もあるかと思います。こんな時には Proc を使いましょう。Proc は定…

セーフレベル 4 環境と Erubis, Tenjin

Ruby のセーフレベル4($SAFE=4)って、やっぱり、大事だと思います。果たしてセーフレベル 4 環境をどの程度信用して良いのかは確証が持てないところですが、とにかく丸腰で挑むよりはよっぽどマシだろう、という弱腰の姿勢で取り組んで行く次第です。さて、…