まつもと ゆきひろです

実は[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ではなく配列を返してくれるか、特異メソッドのな
い小さな配列はコピーしてくれると、ありがたいと思っているので
すが。

                                まつもと ゆきひろ /:|)