8
8
# this file is here to facilitate running it.
9
9
#
10
10
11
- require " rubygems"
11
+ require ' rubygems'
12
12
13
13
m = Module . new do
14
- module_function
14
+ module_function
15
15
16
16
def invoked_as_script?
17
- File . expand_path ( $0 ) == File . expand_path ( __FILE__ )
17
+ File . expand_path ( $PROGRAM_NAME ) == File . expand_path ( __FILE__ )
18
18
end
19
19
20
20
def env_var_version
21
- ENV [ " BUNDLER_VERSION" ]
21
+ ENV [ ' BUNDLER_VERSION' ]
22
22
end
23
23
24
24
def cli_arg_version
25
25
return unless invoked_as_script? # don't want to hijack other binstubs
26
- return unless "update" . start_with? ( ARGV . first || " " ) # must be running `bundle update`
26
+ return unless 'update' . start_with? ( ARGV . first || ' ' ) # must be running `bundle update`
27
+
27
28
bundler_version = nil
28
29
update_index = nil
29
30
ARGV . each_with_index do |a , i |
30
31
if update_index && update_index . succ == i && a =~ Gem ::Version ::ANCHORED_VERSION_PATTERN
31
32
bundler_version = a
32
33
end
33
34
next unless a =~ /\A --bundler(?:[= ](#{ Gem ::Version ::VERSION_PATTERN } ))?\z /
34
- bundler_version = $1 || ">= 0.a"
35
+
36
+ bundler_version = Regexp . last_match ( 1 ) || '>= 0.a'
35
37
update_index = i
36
38
end
37
39
bundler_version
38
40
end
39
41
40
42
def gemfile
41
- gemfile = ENV [ " BUNDLE_GEMFILE" ]
43
+ gemfile = ENV [ ' BUNDLE_GEMFILE' ]
42
44
return gemfile if gemfile && !gemfile . empty?
43
45
44
- File . expand_path ( " ../../ Gemfile" , __FILE__ )
46
+ File . expand_path ( ' ../Gemfile' , __dir__ )
45
47
end
46
48
47
49
def lockfile
48
50
lockfile =
49
51
case File . basename ( gemfile )
50
- when " gems.rb" then gemfile . sub ( /\. rb$/ , gemfile )
52
+ when ' gems.rb' then gemfile . sub ( /\. rb$/ , gemfile )
51
53
else "#{ gemfile } .lock"
52
54
end
53
55
File . expand_path ( lockfile )
54
56
end
55
57
56
58
def lockfile_version
57
59
return unless File . file? ( lockfile )
60
+
58
61
lockfile_contents = File . read ( lockfile )
59
62
return unless lockfile_contents =~ /\n \n BUNDLED WITH\n \s {2,}(#{ Gem ::Version ::VERSION_PATTERN } )\n /
63
+
60
64
Regexp . last_match ( 1 )
61
65
end
62
66
@@ -68,24 +72,26 @@ m = Module.new do
68
72
end
69
73
70
74
def load_bundler!
71
- ENV [ " BUNDLE_GEMFILE" ] ||= gemfile
75
+ ENV [ ' BUNDLE_GEMFILE' ] ||= gemfile
72
76
73
77
# must dup string for RG < 1.8 compatibility
74
78
activate_bundler ( bundler_version . dup )
75
79
end
76
80
77
81
def activate_bundler ( bundler_version )
78
- if Gem ::Version . correct? ( bundler_version ) && Gem ::Version . new ( bundler_version ) . release < Gem ::Version . new ( " 2.0" )
79
- bundler_version = " < 2"
82
+ if Gem ::Version . correct? ( bundler_version ) && Gem ::Version . new ( bundler_version ) . release < Gem ::Version . new ( ' 2.0' )
83
+ bundler_version = ' < 2'
80
84
end
81
85
gem_error = activation_error_handling do
82
- gem " bundler" , bundler_version
86
+ gem ' bundler' , bundler_version
83
87
end
84
88
return if gem_error . nil?
89
+
85
90
require_error = activation_error_handling do
86
- require " bundler/version"
91
+ require ' bundler/version'
87
92
end
88
93
return if require_error . nil? && Gem ::Requirement . new ( bundler_version ) . satisfied_by? ( Gem ::Version . new ( Bundler ::VERSION ) )
94
+
89
95
warn "Activating bundler (#{ bundler_version } ) failed:\n #{ gem_error . message } \n \n To install the version of bundler this project requires, run `gem install bundler -v '#{ bundler_version } '`"
90
96
exit 42
91
97
end
100
106
101
107
m . load_bundler!
102
108
103
- if m . invoked_as_script?
104
- load Gem . bin_path ( "bundler" , "bundle" )
105
- end
109
+ load Gem . bin_path ( 'bundler' , 'bundle' ) if m . invoked_as_script?
0 commit comments