При использовании идиомы, такой как:
def func(*args)
...
end
В чем смысл * args? Популяция этого конкретного вопроса была довольно сложной, и я ничего не мог найти.
Кажется, что все аргументы фактически появляются в args [0], поэтому я нахожу себе защитный код, например:
my_var = args[0].delete(:var_name) if args[0]
Но я уверен, что лучший способ я пропускаю.