2011年10月25日

[ruby-list:48493] Re: Windows で $0 へ代入すると刈り取られる

5.5 です。

(11/10/24 9:43), Kenta Murata wrote:
> むらたです。

> $0 に直接依存しないようにプログラムを書けば良いです。
> たとえば、以下のように適当なモジュールを用意して、
> その中で $0 を返す関数を定義します。

>
> module Application
> def Application.program_name
> $0
> end
> end
>
> そして、の関数の外で $0 を使用している箇所を
> すべて program_name に置き換えましょう。
>
> RSpec では以下のようにすることで、5.5 さんがやろうとしている
> パスの置き換えを実現できます。
>
> describe "..." do
> before do
> Application.stub(:program_name).and_return("/path/to/application")
> end
>
> ...
> end

なるほど〜
RSpec を勉強したことがないので正確には分かりませんが,なんとなく
分かりました。
こちらは $0 を温存し,そこから値を取り出す途中のところをテスト時
だけすり替えるといった解決方法ですね。

ありがとうございました。

実は件のライブラリーとテストは既にだいぶ書き換えてしまい,一応あ
る意味で解決はしていたのですが,なかださん,むらたさんに教えてい
ただいたことは大変勉強になりました。

--
5.5@xxxxx


投稿者 xml-rpc : 2011年10月25日 00:15
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/107050
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。