Sha256: 3dd80a8a2c48af3cd7e4cabe5451b9702a3621e422182a83ff6cc46a94b7abc7
Contents?: true
Size: 1.24 KB
Versions: 8
Compression:
Stored size: 1.24 KB
Contents
# frozen_string_literal: true require "rbconfig" ## # A TargetConfig is a wrapper around an RbConfig object that provides a # consistent interface for querying configuration for *deployment target # platform*, where the gem being installed is intended to run on. # # The TargetConfig is typically created from the RbConfig of the running Ruby # process, but can also be created from an RbConfig file on disk for cross- # compiling gems. class Gem::TargetRbConfig attr_reader :path def initialize(rbconfig, path) @rbconfig = rbconfig @path = path end ## # Creates a TargetRbConfig for the platform that RubyGems is running on. def self.for_running_ruby new(::RbConfig, nil) end ## # Creates a TargetRbConfig from the RbConfig file at the given path. # Typically used for cross-compiling gems. def self.from_path(rbconfig_path) namespace = Module.new do |m| # Load the rbconfig.rb file within a new anonymous module to avoid # conflicts with the rbconfig for the running platform. Kernel.load rbconfig_path, m end rbconfig = namespace.const_get(:RbConfig) new(rbconfig, rbconfig_path) end ## # Queries the configuration for the given key. def [](key) @rbconfig::CONFIG[key] end end
Version data entries
8 entries across 8 versions & 2 rubygems