[#48450] 1.8.7と1.9.2の挙動の違いについて — "Jun'ya Shimoda" <jun-shimo@...>

下田です。

13 messages 2011/10/09

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

From: "5.5" <5.5@...>
Date: 2011-10-24 15:15:34 UTC
List: ruby-list #48493
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@moji.gr.jp

In This Thread

Prev Next