@@ -5,12 +5,24 @@ def self.settings_flag(flag, &default)
55 unless Bundler ::Settings ::BOOL_KEYS . include? ( flag . to_s )
66 raise "Cannot use `#{ flag } ` as a settings feature flag since it isn't a bool key"
77 end
8- define_method ( "#{ flag } ?" ) do
9- value = Bundler . settings [ flag ]
8+
9+ settings_method ( "#{ flag } ?" , flag , &default )
10+ end
11+ private_class_method :settings_flag
12+
13+ def self . settings_option ( key , &default )
14+ settings_method ( key , key , &default )
15+ end
16+ private_class_method :settings_option
17+
18+ def self . settings_method ( name , key , &default )
19+ define_method ( name ) do
20+ value = Bundler . settings [ key ]
1021 value = instance_eval ( &default ) if value . nil? && !default . nil?
1122 value
1223 end
1324 end
25+ private_class_method :settings_method
1426
1527 ( 1 ..10 ) . each { |v | define_method ( "bundler_#{ v } _mode?" ) { major_version >= v } }
1628
@@ -20,6 +32,8 @@ def self.settings_flag(flag, &default)
2032 settings_flag ( :error_on_stderr ) { bundler_2_mode? }
2133 settings_flag ( :init_gems_rb ) { bundler_2_mode? }
2234
35+ settings_option ( :default_cli_command ) { bundler_2_mode? ? :cli_help : :install }
36+
2337 def initialize ( bundler_version )
2438 @bundler_version = Gem ::Version . create ( bundler_version )
2539 end
@@ -28,7 +42,5 @@ def major_version
2842 @bundler_version . segments . first
2943 end
3044 private :major_version
31-
32- class << self ; private :settings_flag ; end
3345 end
3446end
0 commit comments