dreamedge.net

undefined method to_datetimeエラー

2009-01-01T10:47:00+0000

debian etchでgemのspreadsheetライブラリを使うと,to_datetimeメソッドがないぞというエラーが出て怒られる.

/var/lib/gems/1.8/gems/ruby-ole-1.2.8.1/lib/ole/types/base.rb:84:in `send': undefined method `to_datetime' for Fri Dec 19 11:39:04 +0900 2008:Time (NoMethod\Error)

これはetchのruby1.8.5だと,require ‘date’してもTime.to_datetimeが定義されないことによる問題.
最新の1.8.7のソースパッケージを取ってきてdate.rb, date2.rb等をコピーすることで回避できる.

$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.gz
$ tar xzf ruby-1.8.7-p72.tar.gz
$ sudo mv /usr/lib/ruby/1.8/date.rb \
          /usr/lib/ruby/1.8/date.rb.bak
$ sudo mv /usr/lib/ruby/1.8/date2.rb \
          /usr/lib/ruby/1.8/date2.rb.bak
$ sudo mv /usr/lib/ruby/1.8/date \
          /usr/lib/ruby/1.8/date.bak
$ sudo cp -r ruby-1.8.7-p72/lib/date* /usr/lib/ruby/1.8/