Skip to content

Commit b533e08

Browse files
committed
Print default in help when option type is :boolean and dafault is false
1 parent 9b9db75 commit b533e08

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

lib/thor/parser/option.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,10 @@ def aliases_for_usage
104104
end
105105
end
106106

107+
def show_default?
108+
super || [TrueClass, FalseClass].any? { |c| default.is_a?(c) }
109+
end
110+
107111
VALID_TYPES.each do |type|
108112
class_eval <<-RUBY, __FILE__, __LINE__ + 1
109113
def #{type}?

spec/parser/option_spec.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,4 +269,21 @@ def option(name, options = {})
269269
end
270270
end
271271
end
272+
273+
describe "#print_default" do
274+
it "prints boolean with true default value" do
275+
expect(option(:foo, {
276+
required: false,
277+
type: :boolean,
278+
default: true
279+
}).print_default).to eq(true)
280+
end
281+
it "prints boolean with false default value" do
282+
expect(option(:foo, {
283+
required: false,
284+
type: :boolean,
285+
default: false
286+
}).print_default).to eq(false)
287+
end
288+
end
272289
end

0 commit comments

Comments
 (0)