Comment faire pour exécuter la CISR.démarrer dans le contexte de l'actuelle classe

J'ai été tout simplement en passant par PragProg des Essais en Continu Avec Ruby, où ils parlent de l'invocation IRB dans le contexte de la classe en cours d'inspecter le code manuellement.

Cependant, ils citent que si vous appelez IRB.start dans une classe, auto est prédéfini, et fait référence à l'objet que nous étions lorsque le départ a été appelé qui n'est pas vrai dans mon cas.

Même pour exemple très simple comme

a = "hello"
require 'irb'
ARGV.clear # otherwise all script parameters get passed to IRB
IRB.start

Lorsque j'essaie d'accéder à la a variable, j'ai l'évidente

NameError: undefined local variable or method `a' for main:Object

Il ne fonctionne que quand je change de a à la variable globale

$a = "hello"
require 'irb'
ARGV.clear # otherwise all script parameters get passed to IRB
IRB.start

alors je peux y accéder

irb(main):001:0> $a
=> 1

Est-il un moyen de contourner cela pour l'accès local et les variables d'instance de la classe en cours?

InformationsquelleAutor Jakub Arnold | 2010-11-15