Привет, я хочу сделать следующее. Я просто хочу перегрузить метод [] для доступа к переменным экземпляра ... Я знаю, это не имеет большого смысла, но я хочу сделать это по какой-то странной причине:
Это будет что-то вроде этого ...
class Wata
attr_accessor :nombre, :edad
def initialize(n,e)
@nombre = n
@edad = e
end
def [](iv)
self.iv
end
end
juan = Wata.new('juan',123)
puts juan['nombre']
Но при этом выдается следующая ошибка:
overload.rb: 11: в `[] ': неопределенный метод' iv 'для # (NoMethodError)
Как я могу это сделать?
EDIT
Я нашел также это решение:
def [](iv)
eval("self."+iv)
end