summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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