模块 RbConfig
该模块存储了 Ruby 解释器在构建时的配置信息。
此文件在构建 ruby 时由 mkconfig.rb 创建。它包含 ruby 的构建信息,例如,mkmf 使用这些信息来构建兼容的本地扩展。对该文件所做的任何更改将在下次构建 ruby 时丢失。
常量
- CONFIG
-
存储的哈希配置。
- DESTDIR
-
在 make install 上的
DESTDIR
。 - LIMITS
-
一个
Hash
,包含用于构建 Ruby 的 C 编译器可用的数值类型的界限。要访问此常量,请先运行require 'rbconfig/sizeof'
。require 'rbconfig/sizeof' RUBY_PLATFORM # => "x64-mingw-ucrt" RbConfig::LIMITS.fetch_values('FIXNUM_MAX', 'LONG_MAX') # => [1073741823, 2147483647]
- 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"
- SIZEOF
-
一个
Hash
,包含用于构建 Ruby 的 C 编译器可用的 C 类型字节大小。要访问此常量,请先运行require 'rbconfig/sizeof'
。require 'rbconfig/sizeof' RUBY_PLATFORM # => "x64-mingw-ucrt" RbConfig::SIZEOF.fetch_values('long', 'void*') # => [4, 8]
- TOPDIR
-
Ruby 安装目录。
公共类方法
源代码
# File rbconfig.rb, line 301 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
RbConfig.expand(val) -> string RbConfig.expand(val, config) -> string
使用给定的 val
值展开变量。
RbConfig.expand("$(bindir)") # => /home/foobar/all-ruby/ruby19x/bin
源代码
# File rbconfig.rb, line 359 def RbConfig.ruby File.join( RbConfig::CONFIG["bindir"], RbConfig::CONFIG["ruby_install_name"] + RbConfig::CONFIG["EXEEXT"] ) end
RbConfig.ruby -> path
返回 ruby 命令的绝对路径名。