Dove posizionare i file .rb?


#1

Ciao a tutti, primo post prima richiesta :slight_smile:
Come devo fare per disporre di una classe che ho definito in un file .rb
?
In particolare al mio primo approccio con Ruby
vorrei riuscire ad utilizzare questo codice:
http://snippets.dzone.com/posts/show/3906

Allora, con SciTE ho creato il file SqlServer.rb
e l’ho salvato in una directory di progetto.
Ovviamente mi sono studiato il problema “classpath”
ed ho scoperto che in ruby vi è un array e si chiama $LOAD_PATH o $:
e si manipola anche con l’opzione -I di irb e ruby
Il problema è che anche avendo aggiunto la directory dove sono i miei
file a questo Path, ottengo errore da fxri quando scrivo:

db = SqlServer.new(‘10.0.0.33:1033’, ‘sa’, ‘*******’)

Ma non doveva essere semplice Ruby :-p
Scusate, spero di trovare aiuto per poter confidare in questa
tecnologia.

Grazie.


#2

Puoi provare con un:
require ‘/path/completo/SqlServer.rb’

Se così va provi con il path relativo allo script che ne ha bisogno. Puoi
anche omettere l’estensione .rb

Un buon trucco per provare la tua classe in isolamento può essere mettere
in fondo un:

if FILE == $0
obj = MioClasse.new
obj.do_stuf
result = obj.do_really_fun_stuff
puts “Funky! Look at this: #{result}”
end

Così, se esegui il file con la tua classe verrà eseguito il codice sopra. Se
invece usi la classe da un altro script, tramite ‘require’, non
verrà eseguito!


#3

Grazie
ho capito come eseguire i file .rb
anche se nacora non riesco a fare,
da fxri una cosa tipo:
db = SqlServer.new(‘10.0.0.33:1033’, ‘sa’, ‘*******’)

è forse comunque necessario un require “quel file”?
a cosa serve LOAD_PATH allora?
come faccio a far comparire sempre quel percorso in LOAD_PATH all’avvio
del sistema?

P.S.: Lo snippet che ho trovato a quel sito non funziona con Sql Server
2000.
Ma poco male: ho appreso di DBI, sembra buono, no?


#4

On Tue, 19 Jun 2007 18:51:32 +0200, Cosimo G. wrote:

Grazie
ho capito come eseguire i file .rb

Cioè? Dici il trucco con “FILE == $0”?
:slight_smile:

anche se nacora non riesco a fare,
da fxri una cosa tipo:

Sarò stupido io, ma cos’è “fxri”? È “ri” con gli effetti speciali?

db = SqlServer.new(‘10.0.0.33:1033’, ‘sa’, ‘*******’)

è forse comunque necessario un require “quel file”?

Oh sì! Se vuoi usare una classe definita in ‘sqlserver.rb’ devi fare un
‘require’ di quel file.

a cosa serve LOAD_PATH allora?

È per non dover stare a indicare tutto il path per il file che vuoi
requisire. Punta a ‘site-ruby’ credo, perché le gemme usano una roba
diversa (ma simile). Ma non prendermi in parola, perché non uso mai
LOAD_PATH.

Di sicuro non è un path che indica un insieme di file che vengono
caricati sempre e comunque.

come faccio a far comparire sempre quel percorso in LOAD_PATH all’avvio
del sistema?

Forse lo setti tra gli variabili d’ambiente. In linea di massima direi
però che non dovresti: meglio lasciare a Ruby e a rubygems il compito di
gestire i percorsi per le librerie e poi fare dei require con un path
relativo per le robe che crei tu. Rails include anche la cartella “lib”
dell’applicazione nei percorsi che cerca (occhio che devi riavviare
l’app perché le modifiche si vedano!).

P.S.: Lo snippet che ho trovato a quel sito non funziona con Sql Server
2000.
Ma poco male: ho appreso di DBI, sembra buono, no?

Ah, non era DBI quello? Non c’ho guardato, se devo essere sincero. E
usare ActiveRecord direttamente?

:slight_smile:


#5

David wrote:

On Tue, 19 Jun 2007 18:51:32 +0200, Cosimo G. wrote:

Grazie
ho capito come eseguire i file .rb

Cio�? Dici il trucco con “FILE == $0”?
:slight_smile:

ok questo, ma io ero ancora alla linea di comando :smiley:

anche se nacora non riesco a fare,
da fxri una cosa tipo:

Sar� stupido io, ma cos’� “fxri”? � “ri” con gli effetti speciali?

Ma non lo so…
un coso( una console ) che è uscito con l’installazione su windows

a cosa serve LOAD_PATH allora?

� per non dover stare a indicare tutto il path per il file che vuoi
requisire. Punta a ‘site-ruby’ credo, perch� le gemme usano una roba
diversa (ma simile). Ma non prendermi in parola, perch� non uso mai
LOAD_PATH.

Di sicuro non � un path che indica un insieme di file che vengono
caricati sempre e comunque.

grazie, chiaro!

P.S.: Lo snippet che ho trovato a quel sito non funziona con Sql Server
2000.
Ma poco male: ho appreso di DBI, sembra buono, no?

Ah, non era DBI quello? Non c’ho guardato, se devo essere sincero. E
usare ActiveRecord direttamente?

:slight_smile:
Ma io non il framework rails, funziona lo stesso?

Gia che mi trovo, posso usare anche ActiveMail?