Skip to content

Commit dcde9a1

Browse files
committed
Add RDoc::Options.boolean
1 parent ce77f51 commit dcde9a1

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

lib/rdoc/options.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1394,4 +1394,15 @@ def self.load_options
13941394
options
13951395
end
13961396

1397+
def self.boolean(flag, message = nil)
1398+
if flag == true or flag == false
1399+
flag
1400+
elsif "yes".casecmp(flag) == 0 or "true".casecmp(flag) == 0
1401+
true
1402+
elsif "no".casecmp(flag) == 0 or "false".casecmp(flag) == 0
1403+
false
1404+
else
1405+
raise ArgumentError, [message, flag.inspect].compact.join(": ")
1406+
end
1407+
end
13971408
end

test/rdoc/test_rdoc_options.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -964,6 +964,20 @@ def test_exclude_option_without_default
964964
assert_not_match exclude, "foo~"
965965
end
966966

967+
def test_boolean
968+
assert_equal true, RDoc::Options.boolean(true)
969+
assert_equal true, RDoc::Options.boolean("true")
970+
assert_equal true, RDoc::Options.boolean("yes")
971+
972+
assert_equal false, RDoc::Options.boolean(false)
973+
assert_equal false, RDoc::Options.boolean("false")
974+
assert_equal false, RDoc::Options.boolean("no")
975+
976+
assert_raise(ArgumentError) do
977+
RDoc::Options.boolean("unknown")
978+
end
979+
end
980+
967981
class DummyCoder < Hash
968982
alias add :[]=
969983
def tag=(tag)

0 commit comments

Comments
 (0)