Почему бы просто не передать лямбды? Я имею в виду, что лямбда - это просто анонимный метод / функция, как вы знаете по другим языкам, поэтому она должна работать нормально. Например:
fake_method = lambda { |n| "do something with n" }
def other_method(fm)
#...
fm.call
#...
end
other_method(fake_method)
Вам все еще нужно позвонить .call
хотя