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
È stato utile?

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
scroll top