Frage

Ich habe eine einfache DSL für Aufgaben in einer UniVerse-Datenbank in jruby entwickelt.Es sieht ungefähr so ​​aus

support = { 
    :host => 'localhost', 
    :account => 'SUPPORT'
}

uni_task support do 
    connect
    exec "LIST FILE A1"
    disconnect
end

und wird so umgesetzt

def uni_task(config, &block)
    session = UniSession.new
    session.instance_eval &block
end

Mir ist bewusst, dass Sie in einem Ruby-Skript wie „irb“ zu IRB wechseln können Das

Aber gibt es eine Möglichkeit, zu einer Befehlszeile zu wechseln und den Bereich so zu ändern, dass standardmäßig Instanzmethoden eines Objekts ausgeführt werden?

Z.B

irb> uni_commandline support
uni> connect
uni> exec "LIST FILE A1"

     .... output .....

uni> disconnect
War es hilfreich?

Lösung

Im IRB können Sie das verwenden irb Befehl zum Bewegen innerhalb eines Objektbereichs:

irb> irb some_object

Von da an werden alle Befehle innerhalb des Gültigkeitsbereichs dieses Objekts ausgeführt (Sie können also seine Instanzmethoden direkt aufrufen).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top