aboutsummaryrefslogtreecommitdiffstats
path: root/spec/bundler/support/hax.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/bundler/support/hax.rb')
-rw-r--r--spec/bundler/support/hax.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/spec/bundler/support/hax.rb b/spec/bundler/support/hax.rb
new file mode 100644
index 0000000000..663d3527c5
--- /dev/null
+++ b/spec/bundler/support/hax.rb
@@ -0,0 +1,47 @@
+# frozen_string_literal: true
+require "rubygems"
+
+module Gem
+ class Platform
+ @local = new(ENV["BUNDLER_SPEC_PLATFORM"]) if ENV["BUNDLER_SPEC_PLATFORM"]
+ end
+ @platforms = [Gem::Platform::RUBY, Gem::Platform.local]
+end
+
+if ENV["BUNDLER_SPEC_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 "bundler/constants"
+
+ module Bundler
+ remove_const :WINDOWS if defined?(WINDOWS)
+ WINDOWS = true
+ end
+end
+
+class Object
+ if ENV["BUNDLER_SPEC_RUBY_ENGINE"]
+ if defined?(RUBY_ENGINE) && 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 if defined?(RUBY_ENGINE)
+ RUBY_ENGINE = ENV["BUNDLER_SPEC_RUBY_ENGINE"]
+
+ if RUBY_ENGINE == "jruby"
+ remove_const :JRUBY_VERSION if defined?(JRUBY_VERSION)
+ JRUBY_VERSION = ENV["BUNDLER_SPEC_RUBY_ENGINE_VERSION"]
+ end
+ end
+end