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.