From: Bharat Ruparel Date: 2008-03-04T07:00:56+09:00 Subject: Question on the Ruby Programming Language Book I have been reading The Ruby Programming Language book by David Flanagan and Matz. It is written quite well. Some examples are not clear (to me): Here is one from Chapter 7 page 244 which defines a class to set enumerated types: class Season NAMES = %w{ Spring Summer Autumn Winter } # Array of season names INSTANCES = [] # Array of Season objects def initialize(n) # The state of a season is just its @n = n # index in the NAMES and INSTANCES arrays end def to_s # Return the name of a season NAMES[@n] end # This code creates instances of this class to represent the seasons # and defines constants to refer to those instances. # Note that we must do this after initialize is defined. NAMES.each_with_index do |name,index| instance = new(index) # Create a new instance INSTANCES[index] = instance # Save it in an array of instances const_set name, instance # Define a constant to refer to it end # Now that we have created all the instances we'll ever need, we must # prevent any other instances from being created private_class_method :new,:allocate # Make the factory methods private private :dup, :clone # Make copying methods private end My question is how do you use this class from the client code? Can someone give some examples? Thanks. Bharat -- Posted via http://www.ruby-forum.com/.