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?

questionAnswers(7)

yourAnswerToTheQuestion