[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:003239] Re: ruby 1.9.2でのruby-netcdf対応
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:003239] Re: ruby 1.9.2でのruby-netcdf対応
- From: Tsuyoshi Koshiro <koshiro@xxxxxxxxxxxxxx>
- Date: Thu, 23 Dec 2010 03:17:19 +0900
神代です.
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 に変更をコミットしておきました.