1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/spec/bundler/support/hax.rb
2019-11-13 10:19:51 +09:00

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