From 7350562e5ea1246032f88cf008b8f0434e375da5 Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 15 Jan 2011 00:48:16 +0000 Subject: [PATCH] * ruby.c (ruby_init_prelude): get rid of global namespace pullution. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ gem_prelude.rb | 2 +- ruby.c | 8 +++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0498f872ed..3386068646 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Jan 15 09:48:14 2011 Nobuyoshi Nakada + + * ruby.c (ruby_init_prelude): get rid of global namespace + pullution. + Sat Jan 15 09:42:12 2011 Nobuyoshi Nakada * 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) diff --git a/ruby.c b/ruby.c index 079afd8d34..61a293e57e 100644 --- a/ruby.c +++ b/ruby.c @@ -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);