Add a koan for mandatory keyword arguments

Previously, `about_keyword_arguments.rb` asked the reader
to reflect on the fact that keyword arguments must have default
values. However, this does not seem to be true anymore in Ruby.

This commit replaces that comment with two koans that guide the
reader through validating and using a method with mandatory
keyword arguments.
This commit is contained in:
Varun Iyer
2022-08-15 14:12:39 -07:00
parent 0659d2a672
commit c7a56e50fa

View File

@@ -24,8 +24,20 @@ class AboutKeywordArguments < Neo::Koan
assert_match(/#{__("wrong number of arguments")}/, exception.message)
end
# THINK ABOUT IT:
#
# Keyword arguments always have a default value, making them optional to the caller
def method_with_mandatory_keyword_arguments(one:, two: 'two')
[one, two]
end
def test_mandatory_keyword_arguments
assert_equal __(['one', 'two']), method_with_mandatory_keyword_arguments(one: 'one')
assert_equal __([1, 2]), method_with_mandatory_keyword_arguments(two: 2, one: 1)
end
def test_mandatory_keyword_arguments_without_mandatory_argument
exception = assert_raise(___(ArgumentError)) do
method_with_mandatory_keyword_arguments
end
assert_match(/#{__("missing keyword: :one")}/, exception.message)
end
end