diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | gem_prelude.rb | 2 | ||||
-rw-r--r-- | ruby.c | 8 |
3 files changed, 11 insertions, 4 deletions
@@ -1,3 +1,8 @@ +Sat Jan 15 09:48:14 2011 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * ruby.c (ruby_init_prelude): get rid of global namespace + pullution. + Sat Jan 15 09:42:12 2011 Nobuyoshi Nakada <nobu@ruby-lang.org> * include/ruby/io.h: missing prototypes. diff --git a/gem_prelude.rb b/gem_prelude.rb index c96514ada8..3d4516f341 100644 --- a/gem_prelude.rb +++ b/gem_prelude.rb @@ -1 +1 @@ -require 'rubygems' unless $disable_rubygems +require 'rubygems.rb' if defined?(Gem) @@ -1103,9 +1103,8 @@ proc_options(long argc, char **argv, struct cmdline_options *opt, int envopt) void Init_prelude(void); static void -ruby_init_prelude(int enable_gems) +ruby_init_prelude(void) { - rb_gv_set("$disable_rubygems", enable_gems ? Qfalse : Qtrue); Init_prelude(); rb_const_remove(rb_cObject, rb_intern_const("TMP_RUBY_PREFIX")); } @@ -1365,7 +1364,10 @@ process_options(int argc, char **argv, struct cmdline_options *opt) rb_enc_associate(RARRAY_PTR(load_path)[i], lenc); } } - ruby_init_prelude(!(opt->disable & DISABLE_BIT(gems))); + if (!(opt->disable & DISABLE_BIT(gems))) { + rb_define_module("Gem"); + } + ruby_init_prelude(); ruby_set_argv(argc, argv); process_sflag(&opt->sflag); |