class Binding

Objekte der Klasse Binding kapseln den Ausführungskontext an einer bestimmten Stelle im Code und behalten diesen Kontext für die zukünftige Verwendung. Die Variablen, Methoden, der Wert von self und möglicherweise ein Iterator-Block, auf die in diesem Kontext zugegriffen werden kann, werden alle beibehalten. Binding-Objekte können mit Kernel#binding erstellt und den Rückrufen von Kernel#set_trace_func sowie Instanzen von TracePoint zur Verfügung gestellt werden.

Diese Bindungsobjekte können als zweites Argument der Methode Kernel#eval übergeben werden, um eine Umgebung für die Auswertung herzustellen.

class Demo
  def initialize(n)
    @secret = n
  end
  def get_binding
    binding
  end
end

k1 = Demo.new(99)
b1 = k1.get_binding
k2 = Demo.new(-3)
b2 = k2.get_binding

eval("@secret", b1)   #=> 99
eval("@secret", b2)   #=> -3
eval("@secret")       #=> nil

Binding-Objekte haben keine klassenspezifischen Methoden.