This is a simple hash extension which imitates behaviour of ruby's 2.1 keyword arguments. Check out examples below and spec file for sample usage.
def foobar(args = {})
# require :foo and :bar keys
foo, bar = args.kwargs!(:foo, :bar)
puts foo, bar
end
def foobar(args = {})
# set default values for args
foo = args.kwargs!([:foo, "bar"])
puts foo
end
def foobar(args = {})
foo, bar = args.kwargs!([:foo, "bar"], :bar)
puts foo
puts args[:bar]
end
Oh, of course!