Rick Tan wrote:
> Is there a way in Ruby to use the content of a variable as the name of a
> variable.  For example
> 
> var1 = 'myVar'
> 
> i want to assign a value to 'myVar' by referencing var1.  The name of
> the variable can vary depending on the content of var1.

If you're talking about "myVar" being the name of a *local* variable, 
then usually this means you're trying to solve the wrong problem :-)

The normal solution is for var1 to refer to one of the following.

(1) an instance variable of an object

  var1 = '@foo'
  val = obj.instance_variable_get(var1)
  obj.instance_variable_set(var1, val + 1)

(You can omit 'obj.' if you're talking about instance variables of the 
'self' object)

(2) a method name

  var1 = "foo"
  obj.send(var1, 2, 3)   # same as obj.foo(2,3)

  var1 = "foo="
  obj.send(var1, 4)   # same as obj.foo = 4

(3) a constant or a class name

  var1 = "String"
  klass = Object.const_get(var1)
  str = klass.new        # same as str = String.new

  require 'net/http'
  var1 = "HTTP"
  klass = Net.const_get(var1)
  klass.new(...)         # same as Net::HTTP.new(...)

> Other
> application include using a variable to hold the name of a class method
> which i need to call in my code.

For that you use "send":

  MyClass.send(var1, arg, arg...)

HTH,

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