Я немного запутался в том, что вы пытаетесь сделать. Если вы пытаетесь определить метод с помощью eval, который может принимать параметр, вот пример:
eval "def test(name)
puts name
end"
test 'joe'
Если вы хотите использовать eval для определения метода, который более динамичен и использует переменную, поскольку, как указал Брайан, eval принимает строку, вы должны сделать что-то вроде этого:
test_name = 'joe'
eval "def test
puts '#{test_name}'
end"
test