Home » Ruby » Ruby: Iterating through Constants

Ruby: Iterating through Constants

Posted by: admin December 28, 2017 Leave a comment

Questions:

I’m just starting to use constants in Ruby.

I have

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

I would like to do

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

but it says

undefined method ‘each’ for Constants::module

….

Is there a nice way of iterating through a list of constants?

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

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