On Feb 2, 2009, at 18:34 , mwlang88 wrote: >> in other words, why would I want to add 250 lines of dependency code >> where 0 seems to suffice? > > As always, depends on where you want to go with it. For me, I wanted > to catch typos immediately much like a compiled language might. immediately? how? you can't (afaik) do better than a runtime error of some kind. No different than a const_missing/NameError that you're going to get with a typo'd constant name. > I also wanted to associate a display value with a symbol. #to_s ? #to_html ? #to_whatever ? Maybe I'm not getting your point on this one. > And I also wanted to have that be enumerable so I can populate a > dropdown list or emit radio button groups and checkboxes. Arrays are already enumerable. # actual code from png.rb: Background = Color.from 0x00000000, "Transparent" Black = Color.from 0x000000FF, "Black" Blue = Color.from 0x0000FFFF, "Blue" Brown = Color.from 0x996633FF, "Brown" Bubblegum = Color.from 0xFF66FFFF, "Bubblegum" Cyan = Color.from 0x00FFFFFF, "Cyan" Gray = Color.from 0x7F7F7FFF, "Gray" Green = Color.from 0x00FF00FF, "Green" Magenta = Color.from 0xFF00FFFF, "Magenta" Orange = Color.from 0xFF7F00FF, "Orange" Purple = Color.from 0x7F007FFF, "Purple" Red = Color.from 0xFF0000FF, "Red" White = Color.from 0xFFFFFFFF, "White" Yellow = Color.from 0xFFFF00FF, "Yellow" so it would be trivial to do: Colors = [...all of the above...] ... options_from_collection_for_select(Color::Colors, :to_hex, :name) > Not every case calls for Elemental, but I find that it heightens my > code's clarity and maintainability and felt it worthy to release to > public domain. Granted, the doco you have up on github is a tad on the light side, but I just don't see it. Ruby seems to provide pretty good mechanisms for everything you're trying to solve.