Ciao,
per organizzare un po’ meglio le mie classi ho deciso di spostarne un
paio all’interno di una directory utils, nel seguente modo:
analizer.rb - nella root
mux.rb - nella cartella utils
service.rb - nella cartella utils
da analizer.rb richiamo la classe Mux con: require ‘utils/mux’
da mux.rb richiamo la classe Service con: require ‘service’
naturalmente essendo mux.rb e service.rb nella stessa cartella, nel
require ometto la parte ‘utils/.’ e anche l’autocomposizione
dell’editor mi suggerisce che devo includere direttamente ‘service’.
ma in fase di esecuzione esce l’errore:
./util/mux.rb:1:in `require’: no such file to load – service
(LoadError)
from ./util/mux.rb:1
from analizer.rb:2
ovvero mi dice che non trova service
Se invece lascio i tre file nella stessa cartella (naturalmente in
questo caso il require di analizer.rb sarà solo di ‘mux’) tutto funziona
perfettamente e mux.rb trova service
Qualcuno sa spiegarmi come mai organizzando in cartelle si genera questo
errore.
Grazie
Ma che cacchio e’ vero!! anche io ho questo problema. E poi mi lamentavo
dei classpath/sourcepath di java.
Risolvi cosi’:
metti nella prima riga di analizer.rb: $:<<‘util’
Comunque come di ce Diego Abatantuono: “Su Pepplessu”
Dimmi se ti funziona
e poi dicono che la programmazione è una questione di logica
cmq ora tutto funziona, ma il cosa “sto dicendo di fare” con questa
istruzione?
Antonio Di Fluri wrote:
Ma che cacchio e’ vero!! anche io ho questo problema. E poi mi lamentavo
dei classpath/sourcepath di java.
Risolvi cosi’:
metti nella prima riga di analizer.rb: $:<<‘util’
Comunque come di ce Diego Abatantuono: “Su Pepplessu”
Dimmi se ti funziona
— Diego C. [email protected] wrote:
from ./util/mux.rb:1
from analizer.rb:2
ovvero mi dice che non trova service
i require sono sempre relativi alla cartella iniziale,
per cui quando fai
require ‘service’
cerca sempre in dir/service.rb, sia che tu lo faccia
da dir/file.rb che da dir/subdir/file.rb.
$:, ovvero $LOAD_PATH è la lista delle directory in
cui ruby va a cercare il file passato a require.
Aggiungendo “util” a questa lista non devi specificare
il path completo.
HTH
–
Goto 10: http://www.goto10.it
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info
___________________________________________________________
Want ideas for reducing your carbon footprint? Visit Yahoo! For Good
http://uk.promotions.yahoo.com/forgood/environment.html
ciao
Grazie sia ad Antonio che a Gabriele per le spiegazioni
Almeno ora so quando riutilizzarlo ;-D
Si aggiungo che puoi usare in alternativa l’opzione ruby -I
<directory/subdirectory…>
il comando aggiunge il percorso specificato sempre alla variabile
globale $LOAD_PATH (o anche $:)
alla fine sempre $LOAD_PATH devi andare a toccare
Ciao