2011-07-15 15 views
14

Estoy empezando a usar constantes en Ruby.Ruby: Iterando a través de Constantes

tengo

module Constants 
    C1 = "foo" 
    C2 = "bar" 
end 

me gustaría hacer

Constants.each do |c| 
    #do something with each one 
end 

pero dice

undefined method ‘each’ for Constants::module 

....

¿Existe una manera agradable de la iteración a través de una lista de constantes?

+0

Un enlace útil para esta pregunta: http://stackoverflow.com/questions/2309255/how-do-i-get-constants-defined-by-rubys-module-class-via-reflection. –

Respuesta

35
module Constants 
    C1 = "foo" 
    C2 = "bar" 
end 

Constants.constants.each do |c| 
    puts "#{c}: #{Constants.const_get(c)}" 
end 
#=> "C1: foo" 
#=> "C2: bar" 
+0

Typo Constant => Constantes –

+0

@Ray Toal, yeap, gracias – fl00r

Cuestiones relacionadas