模块 RbConfig
存储 Ruby 解释器在构建时的配置的模块。
此文件是在构建 Ruby 时由 mkconfig.rb 创建的。它包含 Ruby 的构建信息,例如 mkmf 用于构建兼容的原生扩展。对该文件所做的任何更改将在下次构建 Ruby 时丢失。
常量
- CONFIG
存储的哈希配置。
- DESTDIR
DESTDIR
在 make install 时。- MAKEFILE_CONFIG
几乎与
CONFIG
相同。MAKEFILE_CONFIG
具有其他变量引用,如下所示。MAKEFILE_CONFIG["bindir"] = "$(exec_prefix)/bin"
此常量的值用于创建 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
用于在 rbconfig 中解析上述引用。require 'rbconfig' p RbConfig.expand(RbConfig::MAKEFILE_CONFIG["bindir"]) # => "/usr/local/bin"
- TOPDIR
Ruby 安装目录。
公共类方法
expand(val, config = CONFIG) 点击切换源代码
RbConfig.expand(val) -> string RbConfig.expand(val, config) -> string
使用给定的 val
值扩展变量。
RbConfig.expand("$(bindir)") # => /home/foobar/all-ruby/ruby19x/bin
# File rbconfig.rb, line 299 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
ruby() 点击切换源代码
RbConfig.ruby -> path
返回 ruby 命令的绝对路径。
# File rbconfig.rb, line 357 def RbConfig.ruby File.join( RbConfig::CONFIG["bindir"], RbConfig::CONFIG["ruby_install_name"] + RbConfig::CONFIG["EXEEXT"] ) end