Using a local variable for method calls

hello all,

first off, thanks for all the help this board/list has offered. it has
been fantastic.

a workmate of mine and i are puzzling over this problem. here is a bit
of pseudo code that represents it:

somehash.each_key do |key|
  update.key "something"
end

obviously there is a problem with using the "key" variable to make the
method call. how can we accomplish this elegantly? we've considered
this:

somehash.each_key do |key|
  eval("update.#{key}(\"something\")")
end

but that seems a bit cludgey. does anyone have some advice?

-reid

···

--
Posted via http://www.ruby-forum.com/.

Reid Oda wrote:

hello all,

first off, thanks for all the help this board/list has offered. it has
been fantastic.

a workmate of mine and i are puzzling over this problem. here is a bit
of pseudo code that represents it:

somehash.each_key do |key|
  update.key "something"
end

obviously there is a problem with using the "key" variable to make the
method call. how can we accomplish this elegantly? we've considered
this:

somehash.each_key do |key|
  eval("update.#{key}(\"something\")")
end

but that seems a bit cludgey. does anyone have some advice?

-reid

Check out the _send_ method.

update._send_(key, *args)

···

--
RMagick: http://rmagick.rubyforge.org/
RMagick 2: http://rmagick.rubyforge.org/rmagick2.html

awesome!

Tim Hunter wrote:

···

Reid Oda wrote:

end

-reid

Check out the _send_ method.

update._send_(key, *args)

--
Posted via http://www.ruby-forum.com/\.

Reid Oda wrote:

> hello all,
>
> first off, thanks for all the help this board/list has offered. it has
> been fantastic.
>
> a workmate of mine and i are puzzling over this problem. here is a bit
> of pseudo code that represents it:
>
> somehash.each_key do |key|
> update.key "something"
> end
>
> obviously there is a problem with using the "key" variable to make the
> method call. how can we accomplish this elegantly? we've considered
> this:
>
> somehash.each_key do |key|
> eval("update.#{key}(\"something\")")
> end
>
> but that seems a bit cludgey. does anyone have some advice?
>
> -reid
>

Check out the _send_ method.

update._send_(key, *args)

you surely mean
update.send(...) or
update.__send__(...)
right?

Cheers
Robert

···

On Thu, Apr 3, 2008 at 12:13 AM, Tim Hunter <TimHunter@nc.rr.com> wrote:

--
RMagick: http://rmagick.rubyforge.org/
RMagick 2: http://rmagick.rubyforge.org/rmagick2.html

--
http://ruby-smalltalk.blogspot.com/

---
Whereof one cannot speak, thereof one must be silent.
Ludwig Wittgenstein

Maybe he tried to introduce a new way ... :wink:

···

--
Posted via http://www.ruby-forum.com/.