Il riutilizzo di Ruby DSL in un REPL o IRB?
-
22-10-2019 - |
Domanda
ho sviluppato un semplice DSL per le attività su un database universo in JRuby. Sembra qualcosa di simile
support = {
:host => 'localhost',
:account => 'SUPPORT'
}
uni_task support do
connect
exec "LIST FILE A1"
disconnect
end
ed è implementato come questo
def uni_task(config, &block)
session = UniSession.new
session.instance_eval &block
end
Sono consapevole del fatto che si può cadere a IRB in uno script Ruby come questo
Ma c'è un modo di goccia ad una linea di comando e hanno cambiato la portata di eseguire metodi di un oggetto istanza predefinita?
Esempio
irb> uni_commandline support
uni> connect
uni> exec "LIST FILE A1"
.... output .....
uni> disconnect
Soluzione
In IRB è possibile utilizzare il comando irb
di muoversi all'interno di un ambito oggetto:
irb> irb some_object
da allora qualsiasi comando eseguirà all'interno della portata di tale oggetto (così si può chiamare direttamente i suoi metodi di istanza).
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow