これか。
~/c/ruby-1.8 % make test-all TESTS=fileutils ./miniruby ./runruby.rb --extout=.ext -- "./test/runner.rb" --basedir="./test" --runner=console fileutils Loaded suite fileutils Started ...............F......................................... Finished in 1.496036 seconds. 1) Failure: test_cp_r(TestFileUtils) [/home/aamine/c/ruby-1.8/test/fileutils/fileasserts.rb:59:in `assert_not_symlink' /home/aamine/c/ruby-1.8/test/fileutils/fileasserts.rb:58:in `assert_not_symlink' /home/aamine/c/ruby-1.8/test/fileutils/test_fileutils.rb:302:in `test_cp_r']: is a symlink: tmp/cpr_dest2 57 tests, 907 assertions, 1 failures, 0 errors make: *** [test-all] Error 1
……なんだこれ。
失敗してるのは test/fileutils/test_fileutils.rb のここだな。
# root is a symlink ln_s 'cpr_src', 'tmp/cpr_src2' cp_r 'tmp/cpr_src2', 'tmp/cpr_dest2' assert_directory 'tmp/cpr_dest2' #assert_not_symlink 'tmp/cpr_dest2' # * 2005-05-26: feature change on trunk #assert_symlink 'tmp/cpr_dest2' # * 2005-09-19: revert for 1.8 (:dereference_root => true by default) assert_not_symlink 'tmp/cpr_dest2' # ← コレが失敗
えらく迷走してることがわかる。Ruby 1.8 独自の仕様か。
ああそうかわかった。 こないだ 1.9 の fileutils をまるごとコピーしてから作業したから、 そのときに Ruby 1.8 独自のコードを消しちゃったんだ。 前のコードを復活させて完了。
(22:38)
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
なんでString#each捨てるのかよくわからないんだけれど、納得いく説明ってあったっけ? str.map{|s| s.strip} とか、よく書くんだけど。
文字ごとの繰り返しにする布石じゃないかなあ。
そんな不便なメソッドを誰が使うのか知らんけど。