aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-09-18 23:31:53 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-09-19 00:03:18 +0900
commit842f600a93deca71e908ef5bb16e4e6aed519890 (patch)
tree92cbb30c383f34f7f08b1d960de6b20ae5218fd7
parent15d5de59fb089eb47ca18dd4a7296fa2e7e73709 (diff)
downloadruby-842f600a93deca71e908ef5bb16e4e6aed519890.tar.gz
Look up the language module
Look up language module with `MakeMakefile.[]`, insted of a accessing constant under that module directly, to get rid of expose the constant to the toplevel inadvertently.
-rw-r--r--ext/-test-/cxxanyargs/extconf.rb2
-rw-r--r--lib/mkmf.rb12
2 files changed, 12 insertions, 2 deletions
diff --git a/ext/-test-/cxxanyargs/extconf.rb b/ext/-test-/cxxanyargs/extconf.rb
index c1823a4042..7e2449a457 100644
--- a/ext/-test-/cxxanyargs/extconf.rb
+++ b/ext/-test-/cxxanyargs/extconf.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: false
-cxx = MakeMakefile::CXX
+cxx = MakeMakefile["C++"]
ok = cxx.try_compile(<<~'begin', "") do |x|
#include "ruby/config.h"
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index 8df6e9ad59..ce72668501 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -2776,7 +2776,17 @@ distclean: clean distclean-so distclean-static distclean-rb-default distclean-rb
realclean: distclean
"
- module CXX
+ @lang = Hash.new(self)
+
+ def self.[](name)
+ @lang.fetch(name)
+ end
+
+ def self.[]=(name, mod)
+ @lang[name] = mod
+ end
+
+ self["C++"] = Module.new do
include MakeMakefile
extend self