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

[dennou-ruby:003721] Re: numru-units on ruby 2.1



堀之内さま、豊田さま、

村上真也です。

# 気づいてもらいやすいように豊田さんをToに入れてみました。

私も見てみましたが、よく分かりませんでした。

ところで(こちらが本題)、http://ruby.gfd-dennou.org/ml/index-j.htm
に2014年のエントリがありませんね。私はrubyグループに入っていなくて
編集できないので、どなたかよろしくお願い致します。

From: Takeshi Horinouchi <horinout@xxxxxxxxxxxxxxxxx>
Date: Thu, 10 Apr 2014 11:12:33 +0900

> 堀之内です。
> 
> どうやら Ruby 2.1 では単位ライブラリ numru-units がうまく動かない
> ようです(先日の "1"  問題とは別)。Racc でうまく行ってないよう
> なので,調査は難航しそうです。どなたか見当がつくと嬉しいのですが...
> > 豊田さん,時間取れないですかね。
> 
> お試し用に電脳 K の私のホームの下
> (/home/horinout/tmp/ruby2.1/bin/)に ruby 2.1.1 をインストール
> してありますので (nurmu-unitsはgemでいれてある),アカウントの
> ある方は試していただけます。
> 
> 以下実行例です。
> 
> ● ruby 2.0 だと(問題なし):
> 
> $ ruby --version
> ruby 2.0.0p451 (2014-02-24 revision 45167) [i686-linux]
> $ ruby -r numru/units -e "u=NumRu::Units['m/s']; u2=NumRu::Units['s']; puts u*u2"
> m
> 
> ● ruby 2.0 だと(問題あり):
> 
> $ use_ruby 2.1
> ruby 2.1.1p76 (2014-02-24 revision 45161) [i686-linux]
> $ ruby -r numru/units -e "u=NumRu::Units['m/s'];
> u2=NumRu::Units['s']; puts u*u2"
> /opt/ruby2.1/lib/ruby/site_ruby/2.1.0/numru/units.rb:209:in `foldnumber': undefined method `foldnumber' for Error[m/s]:NumRu::Units::ErrorNode (NoMethodError)
> 	from /opt/ruby2.1/lib/ruby/site_ruby/2.1.0/numru/units.rb:139:in `reduce4'
> 	from /opt/ruby2.1/lib/ruby/site_ruby/2.1.0/numru/units.rb:2611:in `binop'
> 	from /opt/ruby2.1/lib/ruby/site_ruby/2.1.0/numru/units.rb:2616:in `*'
> 	from -e:1:in `<main>'
> 
> このように演算がうまく行きません。これはパースがうまくいかない
> からです:
> 
> $ ruby -r numru/units -e "u=NumRu::Units['m']; p u.do_parse2,
> u.do_parse2.class"
> Error[m]
> NumRu::Units::ErrorNode
> 
> ここで,do_parse2 メソッドは Racc に投げた parse 処理の
> 結果が nil なので ErrorNode なるものを返してます。だから
> 問題はなんでちゃんと parse されないかということなんですが...。
> 
> 堀之内 武
----
Shin-ya Murakami
email: murashin@xxxxxxxxxxxxxx
WWW: http://www.gfd-dennou.org/member/murashin/