summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2019-07-28 09:59:07 +0800
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2019-07-31 07:47:02 +0800
commit77c0e23b0c28f543e1fb4fbf20cae216be0398f9 (patch)
tree94d3458bbeb8f99885b50b815dd14271bbd4d1cd
parent2a81d3a26a1b9512efb394ec87f73463496d830d (diff)
[rubygems/rubygems] Partly reverted be962ca0c411f3b4bcfebfb6e714c78cbad12775
* `Gem::ConfigMap` is still used by Bundler. * `Gem::RubyGemsVersion` is also still referred by the old gems. https://github.com/rubygems/rubygems/commit/249c3ff44f
-rw-r--r--lib/rubygems/compatibility.rb38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/rubygems/compatibility.rb b/lib/rubygems/compatibility.rb
new file mode 100644
index 0000000000..9238deee72
--- /dev/null
+++ b/lib/rubygems/compatibility.rb
@@ -0,0 +1,38 @@
+# frozen_string_literal: true
+# :stopdoc:
+
+#--
+# This file contains all sorts of little compatibility hacks that we've
+# had to introduce over the years. Quarantining them into one file helps
+# us know when we can get rid of them.
+#
+# Ruby 1.9.x has introduced some things that are awkward, and we need to
+# support them, so we define some constants to use later.
+#++
+
+# TODO remove at RubyGems 4
+module Gem
+ RubyGemsVersion = VERSION
+
+ RbConfigPriorities = %w[
+ MAJOR
+ MINOR
+ TEENY
+ EXEEXT RUBY_SO_NAME arch bindir datadir libdir ruby_install_name
+ ruby_version rubylibprefix sitedir sitelibdir vendordir vendorlibdir
+ rubylibdir
+ ].freeze
+
+ unless defined?(ConfigMap)
+ ##
+ # Configuration settings from ::RbConfig
+ ConfigMap = Hash.new do |cm, key|
+ cm[key] = RbConfig::CONFIG[key.to_s]
+ end
+ else
+ RbConfigPriorities.each do |key|
+ ConfigMap[key.to_sym] = RbConfig::CONFIG[key]
+ end
+ end
+
+end