hikiで発生したrubyの非互換
OpenBlockSからSheevaPlugにマイグレーションしたhikiサイトのユーザから苦情。コメントの投稿ができてない。エラーの原因はこれ。
hao@sheeva% irb [~] irb(main):001:0> require 'digest/md5' => true irb(main):002:0> Digest::MD5::new('xxx') ArgumentError: wrong number of arguments (1 for 0) from (irb):2:in `initialize' from (irb):2:in `new' from (irb):2 from :0 irb(main):003:0>
移行前のrubyは1.8.5で、移行後は1.8.7。恐らくrubyの非互換と思われ、以下のように修正。
--- storage.rb.org 2005-05-17 14:33:27.000000000 +0900 +++ storage.rb 2010-01-03 16:41:02.000000000 +0900 @@ -53,7 +53,8 @@ def md5hex( page ) s = load( page ) - Digest::MD5::new( s || '' ).hexdigest + Digest::MD5::hexdigest( s || '' ) end def search( w )
きっと最新のhikiでは対応済みなのだろうけど、ローカルコード入りまくりで、とても移行する気になれない。