summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-29 18:08:56 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-29 18:08:56 +0000
commitbd89d0cba5a20a2d2f76c4d98e3e70553973c7e7 (patch)
treee3b9a1a3f714e7f3a86d24fb1cce0a018b6be88e
parente33cbc0f540560a3fe0694a5c2792a1b45499951 (diff)
downloadruby-bd89d0cba5a20a2d2f76c4d98e3e70553973c7e7.tar.gz
rbconfig/obsolete.rb: Config
* lib/rbconfig/obsolete.rb (Config): re-introduce warnings for a lame-duck. [ruby-core:46836] [Bug #6809] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--lib/rbconfig/obsolete.rb38
-rwxr-xr-xtool/mkconfig.rb1
3 files changed, 44 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c9b84963a9..388987102d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Oct 30 03:08:53 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/rbconfig/obsolete.rb (Config): re-introduce warnings for a
+ lame-duck. [ruby-core:46836] [Bug #6809]
+
Tue Oct 30 02:20:10 2012 Aaron Patterson <aaron@tenderlovemaking.com>
* thread.c: added Thread#thread_variable_(get|set),
diff --git a/lib/rbconfig/obsolete.rb b/lib/rbconfig/obsolete.rb
new file mode 100644
index 0000000000..8669186083
--- /dev/null
+++ b/lib/rbconfig/obsolete.rb
@@ -0,0 +1,38 @@
+module ::RbConfig
+ module Obsolete
+ end
+ class << Obsolete
+ def _warn_
+ loc, = caller_locations(2, 1)
+ loc = "#{loc.to_s}: " if loc
+ warn "#{loc}Use RbConfig instead of obsolete and deprecated Config."
+ self
+ end
+
+ def const_missing(name)
+ _warn_
+ ::RbConfig.const_get(name)
+ end
+
+ def method_missing(*args, &block)
+ _warn_
+ rbconfig = ::RbConfig
+ result = rbconfig.__send__(*args, &block)
+ result = rbconfig if rbconfig.equal?(result)
+ result
+ end
+
+ def respond_to_missing?(*args, &block)
+ _warn_
+ ::RbConfig.respond_to_missing?(*args, &block)
+ end
+ end
+end
+
+::Config = ::RbConfig::Obsolete._warn_
+=begin
+def Object.const_missing(name)
+ return super unless name == :Config
+ ::RbConfig::Obsolete._warn_
+end
+=end
diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb
index e5203c4d2a..f9d97d3d71 100755
--- a/tool/mkconfig.rb
+++ b/tool/mkconfig.rb
@@ -248,6 +248,7 @@ print <<EOS
)
end
end
+autoload :Config, "rbconfig/obsolete.rb" # compatibility for ruby-1.8.4 and older.
CROSS_COMPILING = nil unless defined? CROSS_COMPILING
EOS