Sto usando IRB (console ruby interattiva) per imparare a programmare con Ruby. Come faccio a caricare un file nella console se scrivo prima i miei programmi in un editor di testo?
Sto usando IRB (console ruby interattiva) per imparare a programmare con Ruby. Come faccio a caricare un file nella console se scrivo prima i miei programmi in un editor di testo?
Risposte:
Se è necessario caricare solo un file in IRB, è possibile richiamarlo con irb -r ./your_file.rb
se si trova nella stessa directory.
Ciò richiede automaticamente il file e ti consente di lavorarci immediatamente.
rake irb
e fa tutto per me.
irb -r /foo/foo.rb
Utilizzando ruby 1.9.3 su Ubuntu 14.04, sono in grado di caricare i file dalla directory corrente irb
con la seguente riga di comando:
irb -I . -r foo.rb
dov'è foo.rb
il file che voglio caricare dalla mia directory corrente. L' -I
opzione è necessaria per aggiungere la directory corrente ( .
) al percorso di caricamento di ruby, come spiegato nella pagina man di ruby. Ciò rende possibile i require
file dalla directory corrente, che è ciò che l' -r
opzione per irb
realizzare.
Il punto chiave che non era ovvio per me quando ho avuto questo problema è l' -I
opzione. Dopo averlo fatto, puoi chiamare require 'foo.rb'
dall'interno irb
per qualsiasi file nella directory corrente. E, naturalmente, puoi specificare qualsiasi directory desideri, non solo .
con l' -I
opzione. Per includere più directory nel percorso di caricamento, separale con due punti (:), ad esempio:
irb -I foo/:bar/:baz/
Questo comando aggiungerà le directory foo
, bar
e baz
al percorso di carico di Ruby.
L'ultima alternativa è utilizzare il percorso relativo o assoluto del file quando si utilizza require
o -r
per caricare un file:
irb -r ./foo.rb
o dall'interno irb
:
> require './foo.rb'
Digitare irb
E poi
require './ruby_file.rb'
Questo presuppone che ruby_file.rb sia nella stessa directory. Regola di conseguenza.
require_relative
. Ad esempio, require "./lib/foo"
fa lo stesso direquire_relative "lib/foo"
.rb
è facoltativo, puoi scrivere require './ruby_file'. I checked in
ruby 1.9.3p551`
Due strade:
source("filename.rb")
require("filename.rb")
require
che non sembra ricaricare lo script (eventuali modifiche alla fonte originale non si riflettono nella tua sessione), mentre source
sembra riflettere le modifiche allo script originale.
Dipende dal tuo rubino. Ruby 1.8 include il percorso corrente, mentre Ruby 1.9 no. Valuta $:
per determinare se il tuo percorso è incluso o meno. Quindi in ruby 1.9 devi usare l'intero percorso, che è sempre una scommessa sicura.
Quindi puoi usare require
o load
per includere il file.
require
non richiede di aggiungere il suffisso del file quando si cerca di trovarlo e includerà il file solo una volta. require
dovrebbe essere utilizzato al posto della load
maggior parte delle volte.
Controlla Aggiunta di una directory a $ LOAD_PATH (Ruby) se utilizzerai ruby 1.8
Digita i codici Ruby nell'editor di testo
Salvalo con l'estensione .rb (ad esempio: demo.rb ).
In Linux, apri il tuo terminale quindi cambia la directory nella posizione corrente di quel file (il comando cd viene utilizzato per cambiare directory).
Dopodiché, digita irb e il nome del tuo file (non dimenticare di includere la tua estensione (.rb)).
In quell'immagine, ho caricato un semplice file ruby che stampa solo "ruby".
Un altro modo per caricare il percorso in irb è semplicemente digitare require, quindi trascinare e rilasciare il file nel terminale.🙂 -testato utilizzando Linux Mint.