From: Paul Date: 2006-08-24T07:20:06+09:00 Subject: OrderedHash - How to get it to work First a bit of a rant. I CAN'T BELIEVE RUBY HASN'T IMPLEMENTED THIS!!! Ok.. I feel better now. I am used to a verrry rich set of collection classes in Smalltalk. I know there has been a lot of discussion on this lately but I noticed that the folks over at http://raa.ruby-lang.org/project/orderedhash/ have produced a class for us! It supports a pretty robust protocol. However, if you download the gem and install it, it will error out. I get a "superclass mismatch for class OrderedHash" error when my rails controller gets loaded. It turns out that rails also defined this class in it's initialize.rb package. Burned on a namespace collision! Therefore, we can't use OrderedHash as it's packaged from raa.ruby-lang.org. My solution was to rename the ordered_hash.rb package to raa_ordered_hash.rb and then rename the OrderedHash class within it to RaaOrderedClass. Here is the full procedure I used. 1. Download the "GoodLibs-1.2006.07.13.gem" file from here: http://raa.ruby-lang.org/project/orderedhash/ 2. Run "gem install GoodLibs-1.2006.07.13.gem" from the directory you downloaded it to. 3. Rename ordered_hash.rb to raa_ordered_hash.rb in the "ruby\lib\ruby\gems\1.8\gems\GoodLibs-1.2006.07.13\lib" directory. 4. Edit the raa_ordered_hash.rb file and change the class to RaaOrderedHash (in several places). 5. Use it in your code as follows: require 'rubygems' require 'raa_ordered_hash' BOOKCHAPTERS = RaaOrderedHash["MAT", 28, "MAR", 16, "LUK", 24, "JOH", 21] BOOKCHAPTERS.each do |key, value| puts key +"," + value.to_s end MAT,28 MAR,16 LUK,24 JOH,21 6. Restart you server If someone has a better way let me know. Thanks, Paul