Skip to content

Commit 5fb6206

Browse files
authored
Merge pull request #849 from nevesenin/bool_false_default
Print default in help when option type is :boolean and default is false
2 parents 9b9db75 + c9e762a commit 5fb6206

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

lib/thor/parser/option.rb

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

107+
def show_default?
108+
case default
109+
when TrueClass, FalseClass
110+
true
111+
else
112+
super
113+
end
114+
end
115+
107116
VALID_TYPES.each do |type|
108117
class_eval <<-RUBY, __FILE__, __LINE__ + 1
109118
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)