Я бы порекомендовал переосмыслить foo
вместо этого.
При этом я не думаю, что есть более элегантный способ, но если бы вы действительно хотели, вы могли бы добавить что-то вроде этого (что уродливее в моеммнение чем то, что у тебя есть)
module Kernel
def noop
Proc.new {}
end
end
Тогда звони как
def foo(blk)
blk.call(1,2,3,4,5)
end
foo(noop)
#=> nil