Das sollte mit dem eval-Befehl gehen.

Code:
$variable1 = 5
$variable2 = '$variable1'
$variable3 = eval($variable2)
p($variable3) # Sollte 5 ergeben
Eval nimmt einen String entgegen und interpretiert diesen String als Ruby-Code, und gibt entsprechend einen Wert zurück.
Innerhalb von Strings kann man auch noch anders Rubycode einbetten:

Code:
$x = 5
$ichBinEinString = "Blablub, dies ist ein Test. #{$x}"
Der String zwischen #{ und } wird hier als Rubycode interpretiert und der Rückgabewert als String genommen. Damit Ruby diese Sonderzeichen ('#{' und '}') so interpretiert, muss der konstante String mit doppelten Hochkommata eingeschlossen werden. Wenn der String nur mit einfachen Hochkommata eingeschlossen wird, nimmt Ruby diese Ersetzung nicht vor.

Das ganze geht natürlich auch mit komplexerem Code:
Code:
$x = TRUE
$foo = "Das Ergebniss des Trinär-Operators ist: #{$x ? 5 : 10}"
Bei größeren mehrzeiligem Code sollte man allerdings zu eval greifen.