В Ruby вызовы методов - это просто сообщения, отправляемые объекту.
Вы ищете
def foo(arg1, arg2, some_method_name)
arg1.send(some_method_name.to_s, arg2)
end
Обратите внимание, что этот метод может обращаться как к открытым, так и к закрытым методам класса.;это, вероятно, желательно для тестирования, но если вы хотите, чтобы он не работал для частных методов, просто используйте public_send
def foo(arg1, arg2, some_method_name)
arg1.public_send(some_method_name.to_s, arg2)
end
Если у вас может быть определен существующий метод отправки для этого объекта, просто замените send
с __send__
См. https://ruby -doc.org / core-2.5.1 / Object.html # method-i-send для получения дополнительной информации