From: Nobuyoshi Nakada Date: 2008-04-18T01:29:18+09:00 Subject: [ruby-dev:34449] Re: Gem::Enable is false when --disable-gems and -rubygems なかだです。 At Fri, 18 Apr 2008 00:59:51 +0900, Yugui wrote in [ruby-dev:34447]: > $ ruby --disable-gems -rubygems -ve 'p Gem::Enable' > ruby 1.9.0 (2008-04-16 revision 0) [i686-darwin9.2.2] > false > > この場合、結局RubyGemsは有効になっているので > Gem::Enableはtrueになっているべきでしょうか? Gem::Enableはrubygemsがロードされているか、というフラグではなく て、デフォルトでロードするかをgem_prelude.rbに伝えるためだけのフ ラグだと思います。しかし、Enableという定数までは不要ではないかと いう気もします。 Index: ruby.c =================================================================== --- ruby.c (revision 16057) +++ ruby.c (working copy) @@ -915,7 +915,5 @@ static void ruby_init_gems(int enable) { - VALUE gem; - gem = rb_define_module("Gem"); - rb_const_set(gem, rb_intern("Enable"), enable ? Qtrue : Qfalse); + if (enable) rb_define_module("Gem"); Init_prelude(); } Index: gem_prelude.rb =================================================================== --- gem_prelude.rb (revision 16057) +++ gem_prelude.rb (working copy) @@ -3,7 +3,7 @@ # empty gem_prelude.rb # -# p Gem::Enable +# p defined?(Gem) -if defined?(Gem::Enable) && Gem::Enable then +if defined?(Gem) then module Kernel -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦