[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:003239] Re: ruby 1.9.2でのruby-netcdf対応



神代です.

At Tue, 14 Dec 2010 16:26:54 +0900,
KOSHIRO Tsuyoshi wrote:
> 
> ruby 1.9.2 では test/aref_aset.rb, test/create_tmp.rb がまだ動かないの
> ですが, またそのうち調べて修正するようにします.

aref_aset.rb は, テストプログラムの問題でした.

v[{0..3,2}]=[100,500]

のところでエラーになります.
http://ruby.gfd-dennou.org/products/ruby-netcdf/Ref_man_jp.html#label:83
にあるように, ハッシュを使って, 間引きインデックス参照・代入ができるの
ですが, ruby 1.9 では {0..3,2} のようなハッシュの表記はできなくなった
ようです.
{0..3=>2} の表記にすれば(こちらのほうが一般的), バージョンに関係なく実
行できるようになりました.

create_tmp.rb のほうは, ライブラリ(lib/netcdf.rb)の問題でした.

NetCDF.create_tmp で, ファイナライザを定義するのに lambda を使っていま
すが, ruby 1.9 から lambda を call する際に引数の個数チェックをするよ
うになっていて, 違うとエラーになります.
もともとここは proc にしておけばよかったと思うので, lambda を proc に
書き換えました. これだと正しく動きます.

これでテストプログラムがすべて ruby 1.9.2 で動くようになりました.
CVS に変更をコミットしておきました.