Skip to content

Commit efd3a23

Browse files
committed
Default to printing a help message when bundle is run without arguments on 2.0
1 parent e45d938 commit efd3a23

File tree

3 files changed

+25
-5
lines changed

3 files changed

+25
-5
lines changed

bundler/lib/bundler/cli.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,14 @@ def initialize(*args)
5555
check_unknown_options!(:except => [:config, :exec])
5656
stop_on_unknown_option! :exec
5757

58-
default_task :install
58+
desc "cli_help", "Prints a summary of bundler commands", :hide => true
59+
def cli_help
60+
version
61+
Bundler.ui.info "\n"
62+
self.class.help(shell)
63+
end
64+
default_task(Bundler.feature_flag.default_cli_command)
65+
5966
class_option "no-color", :type => :boolean, :desc => "Disable colorization in output"
6067
class_option "retry", :type => :numeric, :aliases => "-r", :banner => "NUM",
6168
:desc => "Specify the number of times you wish to attempt network commands"

bundler/lib/bundler/feature_flag.rb

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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
3446
end

bundler/spec/quality_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ def check_for_specific_pronouns(filename)
169169

170170
it "documents all used settings" do
171171
exemptions = %w[
172+
default_cli_command
172173
gem.coc
173174
gem.mit
174175
warned_version

0 commit comments

Comments
 (0)