On Fri, 3 Jun 2005, Oliver Cromm wrote:

> Can't find that discussed anywhere, but maybe I just don't know how to
> look.
>
> I have lots of style parameters in an object. First, I implemented it as
> a hash, so I have the method
>
>  def set_style(stylepars)
>    stylepars.each {|key, val| @style[key] = val}
>  end
>
> Now I want to exchange the Hash for an OpenStruct, because it's much
> easier on the eyes in statements like this:
>
>    sepline = @style['verticalsep'] + sepline +
>      @style['horizontalsep']*@style['padding'] +
>      @style['verticalsep'] if @style['box']
>
> But how can I set "the attribute whose name is in the variable *key*"?

key = 'foo'

value = open_struct.send 'foo'

open_struct.send "#{ foo }=", value

hth.

-a
-- 
===============================================================================
| email :: ara [dot] t [dot] howard [at] noaa [dot] gov
| phone :: 303.497.6469
| My religion is very simple.  My religion is kindness.
| --Tenzin Gyatso
===============================================================================