blob: 7406612e5baa4db2e992bbd7a438b6ebe1e2f58c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# frozen_string_literal: true
postit_lib = File.expand_path("../vendor/postit/lib", __FILE__)
$:.unshift(postit_lib)
require "postit"
require "rubygems"
environment = BundlerVendoredPostIt::Environment.new([])
version = Gem::Requirement.new(environment.bundler_version)
installed_version =
if defined?(Bundler::VERSION)
Bundler::VERSION
else
File.read(File.expand_path("../version.rb", __FILE__)) =~ /VERSION = "(.+)"/
$1
end
installed_version &&= Gem::Version.new(installed_version)
if !version.satisfied_by?(installed_version)
begin
installer = BundlerVendoredPostIt::Installer.new(version)
installer.install!
rescue => e
abort <<-EOS.strip
Installing the inferred bundler version (#{version}) failed.
If you'd like to update to the current bundler version (#{installed_version}) in this project, run `bundle update --bundler`.
The error was: #{e}
EOS
end
Gem.loaded_specs.delete("bundler") unless defined?(Bundler)
gem "bundler", version
$:.delete(File.expand_path("../..", __FILE__))
else
begin
gem "bundler", version
rescue LoadError
$:.unshift(File.expand_path("../..", __FILE__))
end
end
running_version = begin
require "bundler/version"
Bundler::VERSION
rescue LoadError, NameError
nil
end
if !Gem::Version.correct?(running_version.to_s) || !version.satisfied_by?(Gem::Version.create(running_version))
abort "The running bundler (#{running_version}) does not match the required `#{version}`"
end
$:.delete_at($:.find_index(postit_lib))
|