Следующее не совсем код между двумя линиями, которые вы упомянули выше:
class Example
attr_accessor :label
def method_missing(name, *args, &block)
return some_processing if name == label.to_sym
end
def some_processing
3 # of course, this can be something more complicated
end
def test
@label = 'some_name'
puts some_name
end
end
Тем не менее, похоже, что работает с тем, что вам нужно. Механизм изменился по сравнению с тем, что вы дали (метка теперь является атрибутом). Кроме того, технически это не переменная, а метод с динамическим именем, который возвращает то, что вам нужно.
Лично я думаю, что ваши требования кажутся немного опасными в том смысле, что имя "переменной" меняется. Я бы, вероятно, не использовал код в моем примере. Я думаю, в зависимости от требований проекта, я подумаю о другом подходе.