まつもと ゆきひろです
実は[ruby-talk:84420]を受けて、Hash#eachは単一の値(assoc)を
yieldするようにしました。each_pairは今まで通り2値をyieldしま
す。で、この修正を加えたらdrbのtest suiteが動かなくなりまし
た。具体的には
def test_10_yield_undumped
@there.xarray2_hash.each do |k, v|
assert_kind_of(String, k)
assert_kind_of(DRbObject, v)
end
end
の部分で、eachからassoc(2要素の配列)を示すDRb::Objectが渡さ
れ、それをto_aryしようとするもDRb::Objectはto_aryにrespondせ
ず、結果としてkにDRb::Objectが、vにnilが代入されてエラーとい
う過程のようです。
現在はeachをeach_pairに変更してしのいでいるのですが、これは
望ましくないような気がします。個人的にはdrbがto_aryに対して
はDRb::Objectではなく配列を返してくれるか、特異メソッドのな
い小さな配列はコピーしてくれると、ありがたいと思っているので
すが。
まつもと ゆきひろ /:|)