Ruby 1.8でminiunitをインストールするとactivesupport 2.2.2がロードできない
Ruby on Railsの最新版が出たのでとりあえずActiveSupportを使ってみようと思ったのだが、うーん、ロードできぬ。
$ rugem -ractive_support -e '' /pkgs/ruby18/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:445:in `load_missing_constant': uninitialized constant Test (NameError) from /pkgs/ruby18/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in `const_missing' from /pkgs/ruby18/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:89:in `const_missing' from /pkgs/ruby18/lib/ruby/gems/1.8/gems/miniunit-1.2.1/lib/test/unit/error.rb:4 from /pkgs/ruby18/lib/ruby/gems/1.8/gems/rubygems-update-1.3.1/lib/rubygems/custom_require.rb:31:in `gem_original_require' from /pkgs/ruby18/lib/ruby/gems/1.8/gems/rubygems-update-1.3.1/lib/rubygems/custom_require.rb:31:in `require' from /pkgs/ruby18/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require' from /pkgs/ruby18/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in' from /pkgs/ruby18/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require' from /pkgs/ruby18/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/deprecation.rb:224 from /pkgs/ruby18/lib/ruby/gems/1.8/gems/rubygems-update-1.3.1/lib/rubygems/custom_require.rb:31:in `gem_original_require' from /pkgs/ruby18/lib/ruby/gems/1.8/gems/rubygems-update-1.3.1/lib/rubygems/custom_require.rb:31:in `require' from /pkgs/ruby18/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require' from /pkgs/ruby18/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in `new_constants_in' from /pkgs/ruby18/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require' from /pkgs/ruby18/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support.rb:37 zsh: exit 1 rugem -ractive_support -e ''
ログを見たらminiunitと出ているからか。どうせTest::Unitと互換性あるし1.8のは消しとこうか。
$ sudo gem uninstall miniunit
そしたら無事にロードできた。それにしてもこのバージョンだとロード時間がやばいほど長くなったのだが。いったい何が起きたのだ?
$ time rugem -ractive_support -e '' rugem -ractive_support -e '' 1.90s user 4.38s system 94% cpu 6.648 total $ time ruby19 -ractivesupport -e '' ruby19 -ractivesupport -e '' 2.31s user 0.61s system 85% cpu 3.427 total $ time ruby18 -rubygems -e 'require "activesupport"' ruby18 -rubygems -e 'require "activesupport"' 0.91s user 0.48s system 91% cpu 1.520 total
あ、rugem経由だと激重になるだけか。それでも前は軽かったのに…不思議。
っつーかRuby 1.9に対応している。すげぇ〜