Alex Rivera | Logout

Get the value of an instance variable given its name

Asked 2009-07-02T14:30:36.353
118

In general, how can I get a reference to an object whose name I have in a string?

More specifically, I have a list of the parameter names (the member variables - built dynamically so I can't refer to them directly).

Each parameter is an object that also has an from_s method.

I want to do something like the following (which of course doesn't work...):

define_method(:from_s) do | arg |
    @ordered_parameter_names.each do | param |
        instance_eval "field_ref = @#{param}"
        field_ref.from_s(param)
    end
end
Edit
Report

1 Answer

11

To get an instance variable from the name of an instance variable do:

name = "paramName"
instance_variable_get(("@" + name).intern)

This will return the value of the instance variable @paramName

answered 2009-07-02T14:35:26.390

Your Answer