mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
68 lines
1.7 KiB
Ruby
68 lines
1.7 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Gem
|
|
def self.ruby=(ruby)
|
|
@ruby = ruby
|
|
end
|
|
|
|
if ENV["RUBY"]
|
|
Gem.ruby = ENV["RUBY"]
|
|
end
|
|
|
|
if version = ENV["BUNDLER_SPEC_RUBYGEMS_VERSION"]
|
|
remove_const(:VERSION) if const_defined?(:VERSION)
|
|
VERSION = version
|
|
end
|
|
|
|
class Platform
|
|
@local = new(ENV["BUNDLER_SPEC_PLATFORM"]) if ENV["BUNDLER_SPEC_PLATFORM"]
|
|
end
|
|
@platforms = [Gem::Platform::RUBY, Gem::Platform.local]
|
|
|
|
# We only need this hack for rubygems versions without the BundlerVersionFinder
|
|
if Gem::Version.new(Gem::VERSION) < Gem::Version.new("2.7.0") || ENV["BUNDLER_SPEC_DISABLE_DEFAULT_BUNDLER_GEM"]
|
|
@path_to_default_spec_map.delete_if do |_path, spec|
|
|
spec.name == "bundler"
|
|
end
|
|
end
|
|
end
|
|
|
|
if ENV["BUNDLER_SPEC_VERSION"]
|
|
require_relative "path"
|
|
require "#{Spec::Path.lib_dir}/bundler/version"
|
|
|
|
module Bundler
|
|
remove_const(:VERSION) if const_defined?(:VERSION)
|
|
VERSION = ENV["BUNDLER_SPEC_VERSION"].dup
|
|
end
|
|
end
|
|
|
|
if ENV["BUNDLER_SPEC_WINDOWS"] == "true"
|
|
require_relative "path"
|
|
require "#{Spec::Path.lib_dir}/bundler/constants"
|
|
|
|
module Bundler
|
|
remove_const :WINDOWS if defined?(WINDOWS)
|
|
WINDOWS = true
|
|
end
|
|
end
|
|
|
|
class Object
|
|
if ENV["BUNDLER_SPEC_RUBY_ENGINE"]
|
|
if RUBY_ENGINE != "jruby" && ENV["BUNDLER_SPEC_RUBY_ENGINE"] == "jruby"
|
|
begin
|
|
# this has to be done up front because psych will try to load a .jar
|
|
# if it thinks its on jruby
|
|
require "psych"
|
|
rescue LoadError
|
|
nil
|
|
end
|
|
end
|
|
|
|
remove_const :RUBY_ENGINE
|
|
RUBY_ENGINE = ENV["BUNDLER_SPEC_RUBY_ENGINE"]
|
|
|
|
remove_const :RUBY_ENGINE_VERSION
|
|
RUBY_ENGINE_VERSION = ENV["BUNDLER_SPEC_RUBY_ENGINE_VERSION"]
|
|
end
|
|
end
|