Вы думаете об этом неправильно. Хотя это может быть возможно сделать в Ruby, это будет слишком сложно. Правильный способ сделать это будет:
val.change_me!
Что, конечно, варьируется в зависимости от класса того, что вы хотите изменить. Дело в том, что, по соглашению, методы с '!' влияет на экземпляр класса, на котором они вызваны.
Итак ...
class Changeable
def initialize var
@var = var
end
def change_me! change=1
@var += change
end
end
a = Changeable.new 5 # => New object "Changeable", value 5
a.change_me! 6 # => @var = 7
a.change_me! # => @var = 8
Надеюсь, это немного поможет ..