module RbConfig
在构建时存储 Ruby 解释器配置的模块。
此文件在 ruby 构建时由 mkconfig.rb 创建。它包含 ruby 的构建信息,例如 mkmf 使用这些信息来构建兼容的原生扩展。对该文件的任何更改将在下次构建 ruby 时丢失。
在构建时存储 Ruby 解释器配置的模块。
此文件在 ruby 构建时由 mkconfig.rb 创建。它包含 ruby 的构建信息,例如 mkmf 使用这些信息来构建兼容的原生扩展。对该文件的任何更改将在下次构建 ruby 时丢失。
Constants
- CONFIG
-
存储的配置哈希。
- DESTDIR
-
DESTDIR在 make install 时使用。 - 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 类型的大小(以字节为单位)。要访问此常量,请先运行require 'rbconfig/sizeof'。require 'rbconfig/sizeof' RUBY_PLATFORM # => "x64-mingw-ucrt" RbConfig::SIZEOF.fetch_values('long', 'void*') # => [4, 8]
- TOPDIR
-
Ruby 安装目录。
Public Class Methods
Source
# File rbconfig.rb, line 309 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
Source
# File rbconfig.rb, line 367 def RbConfig.ruby File.join( RbConfig::CONFIG["bindir"], RbConfig::CONFIG["ruby_install_name"] + RbConfig::CONFIG["EXEEXT"] ) end
RbConfig.ruby -> path
返回 ruby 命令的绝对路径名。