From: Yukihiro Matsumoto Date: 2005-12-23T09:10:46+09:00 Subject: [ruby-list:41725] Re: Tempfile#== まつもと ゆきひろです In message "Re: [ruby-list:41724] Re: Tempfile#==" on Fri, 23 Dec 2005 04:23:02 +0900, OOTANI TAKASHI writes: |> |Tempfile オブジェクトを == で比較すると false になってしまいますが、 |> |そういうものなのでしょうか。 |> |> オリジナルに転送しちゃうんでオリジナルとTempfileが一致しない |> ということのようです。 | |すいません。ここの理屈がよくわかりません。 TempfileはFileをwrapしているDelegatorなので、==は内部のFile オブジェクトへ転送されます。仮にaをTempfile、bを内部のFileオ ブジェクトとすると a == a が呼び出されたとき、==メソッドは内部のFileオブジェクトに転送 され b == a が実行されます。しかし、bはaのことを知らないので、falseにな るということです。これに対応するためには * Delegator側で==を特別扱いする * IO#==でto_ioでも使って比較する などの対応が考えられます。今回は前者を採用して対応してみまし た。 |何か見落としているんだとは思いますが、わかりません。 |「オリジナル」の意味するところもわかりません。 Delegatorであることが分かれば分かるんじゃないかと。