module RbConfig
The module storing Ruby interpreter configurations on building.
This file was created by mkconfig.rb when ruby was built. It contains build information for ruby which is used e.g. by mkmf to build compatible native extensions. Any changes made to this file will be lost the next time ruby is built.
Constants
- CONFIG
The hash configurations stored.
- DESTDIR
DESTDIR
on make install.- MAKEFILE_CONFIG
Almost same with
CONFIG
.MAKEFILE_CONFIG
has other variable reference like below.MAKEFILE_CONFIG["bindir"] = "$(exec_prefix)/bin"
The values of this constant is used for creating Makefile.
require 'rbconfig' print <<-END_OF_MAKEFILE prefix = #{RbConfig::MAKEFILE_CONFIG['prefix']} exec_prefix = #{RbConfig::MAKEFILE_CONFIG['exec_prefix']} bindir = #{RbConfig::MAKEFILE_CONFIG['bindir']} END_OF_MAKEFILE => prefix = /usr/local exec_prefix = $(prefix) bindir = $(exec_prefix)/bin MAKEFILE_CONFIG = {}
RbConfig.expand
is used for resolving references like above in rbconfig.require 'rbconfig' p RbConfig.expand(RbConfig::MAKEFILE_CONFIG["bindir"]) # => "/usr/local/bin"
- TOPDIR
Ruby installed directory.
Public Class Methods
expand(val) → string
click to toggle source
expand(val, config) → string
expands variable with given val
value.
RbConfig.expand("$(bindir)") # => /home/foobar/all-ruby/ruby19x/bin
# File rbconfig.rb, line 289 def RbConfig::expand(val, config = CONFIG) newval = val.gsub(/\$\$|\$\(([^()]+)\)|\$\{([^{}]+)\}/) { var = $& if !(v = $1 || $2) '$' elsif key = config[v = v[/\A[^:]+(?=(?::(.*?)=(.*))?\z)/]] pat, sub = $1, $2 config[v] = false config[v] = RbConfig::expand(key, config) key = key.gsub(/#{Regexp.quote(pat)}(?=\s|\z)/n) {sub} if pat key else var end } val.replace(newval) unless newval == val val end