From: mwlang88 Date: 2009-02-04T12:04:37+09:00 Subject: Re: Initial release of Elemental On Feb 3, 4:45 am, Ryan Davis wrote: > 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. This is some interesting stuff and you have just shown me a technique/ use of arrays I haven't encountered yet. Looks like I'm going to have to take myself back to school here. Michael