mwlang88
2/4/2009 3:04:00 AM
On Feb 3, 4:45 am, Ryan Davis <ryand-r...@zenspider.com> 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