2011-07-15 31 views
14

Sadece Ruby'de sabitleri kullanmaya başladım.Ruby: Sabitler üzerinden yineleme

Ben

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

Ben

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

yapmak istiyorum var ama

undefined method ‘each’ for Constants::module 

....

iterating güzel bir yolu var mı diyor sabitler listesi aracılığıyla?

+0

bu soru için yararlı bir link: http://stackoverflow.com/questions/2309255/how-do-i-get-constants-defined-by-rubys-module-class-via-reflection. –

cevap

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 => Sabitler –

+0

@Ray Toal, yeap, teşekkürler – fl00r