Como faço para chamar um método que é um valor de hash?
Anteriormente, perguntei sobre uma maneira inteligente de executar um método em uma determinada condição "Ruby uma maneira inteligente de executar uma função em uma condição"
As soluções e o tempo de resposta foram ótimos, no entanto, após a implementação, ter um hash de lambdas fica feio rapidamente. Então comecei a experimentar.
O código a seguir funciona:
def a()
puts "hello world"
end
some_hash = { 0 => a() }
some_hash[0]
Mas se eu embrulhar isso em uma aula, ele pára de funcionar:
class A
@a = { 0 => a()}
def a()
puts "hello world"
end
def b()
@a[0]
end
end
d = A.new()
d.b()
Não consigo ver por que isso deveria parar de funcionar, alguém pode sugerir como fazer isso funcionar?