[rails] ma devo proprio fare delle lib?


#1

mi ritrovo a dover fare del codice in rails che deve esser visibile a un
paio di model e a degli helper.
se lo metto sotto lib mi ritrovo a dover riavviare a ogni changes e in
più
il codice conosce i miei models, quindi mi sembra brutto metterlo in
lib,
come se fosse una dipendenza.

dove lo mettereste voi? mi è venuto in mente un model fittizio parent di
entrambi i model, ma la soluzione non mi piace. quello che vorrei è un
modulo da includere da entrambi i models e dall’helper. dove lo posso
mettere perchè non rompa le scatole e venga reso disponibile?


#2

chiaro scuro wrote:

mi ritrovo a dover fare del codice in rails che deve esser visibile a un
paio di model e a degli helper.
direi in lib, tanto che ci ho visto mettere, ad esempio, moduli da
includere nei controller

se lo metto sotto lib mi ritrovo a dover riavviare a ogni changes
Questo (almeno in production) capita anche per i model

e in più

il codice conosce i miei models, quindi mi sembra brutto metterlo in lib,
come se fosse una dipendenza.

cosa intendi? e’ codice molto “vicino” ai dati? ti serve solo dai model?

dove lo mettereste voi? mi è venuto in mente un model fittizio parent di
entrambi i model, ma la soluzione non mi piace. quello che vorrei è un
modulo da includere da entrambi i models e dall’helper. dove lo posso
mettere perchè non rompa le scatole e venga reso disponibile?
non c’e’ una indicazione precisa di “stile”, potresti metterlo anche
nella directory models se fosse utilizzato solo da questi…

Luca

Web: http://spazidigitali.com - http://thetyper.com
Email mailto://removed_email_address@domain.invalid
Skype callto://l.mearelli


#3

On 3/12/07, Luca M. removed_email_address@domain.invalid wrote:

se lo metto sotto lib mi ritrovo a dover riavviare a ogni changes
Questo (almeno in production) capita anche per i model

vero, ma in fase di sviluppo è una sofferenza dover riavviare.

e in più

il codice conosce i miei models, quindi mi sembra brutto metterlo in
lib,
come se fosse una dipendenza.

cosa intendi? e’ codice molto “vicino” ai dati? ti serve solo dai model?

è codice che uso dai models e da alcuni helper ed è a conoscenza di altri
models esistenti. lo avrei messo in un helper se non fosse per il fatto
che
mi serve richiamarlo anche dai models.

non c’e’ una indicazione precisa di “stile”, potresti metterlo anche

nella directory models se fosse utilizzato solo da questi…

mmmh e mi viene tirato su automaticamente? non lo sapevo, thanks…
effettivamente questo è il meccanismo che carica anche i models no? basta
che sia nella dirctory, mentre i controllers vengono caricati ad-hoc in
base
al nome.


#4

On 3/12/07, chiaro scuro removed_email_address@domain.invalid wrote:

mmmh e mi viene tirato su automaticamente? non lo sapevo, thanks…
effettivamente questo è il meccanismo che carica anche i models no? basta
che sia nella dirctory, mentre i controllers vengono caricati ad-hoc in base
al nome.
Da alcune ricerche sembrerebbe questa la risposta:
http://wiki.rubyonrails.org/rails/pages/RequireDependency
ma sulle api di Rails non sembro trovare riscontro.
Ciauz.

francesco levorato aka flevour
http://www.flevour.net/
“Now while the blood is hot you should make your way with vigour to
better things.” (Seneca)


#5

On 3/12/07, Luca M. removed_email_address@domain.invalid wrote:

mmmh e mi viene tirato su automaticamente? non lo sapevo, thanks…
wait… su questo non sono sicuro (se per automaticamente intendi senza
bisogno di riavvio)! e’ solo che la dir models e’ inclusa nelle

Dovrebbe essere sufficiente mettere il file condiviso (es.
“condiviso.rb”) sotto models/ e nel modello che lo usa aggiungere un
“require ‘condiviso’”. Se/quando viene ricaricato il modello, verrà
ricaricato anche il file condiviso.


Massimiliano M.
code: http://dev.hyperstruct.net
blog: http://blog.hyperstruct.net


#6

On 3/12/07, Massimiliano M. removed_email_address@domain.invalid wrote:

On 3/12/07, Luca M. removed_email_address@domain.invalid wrote:
Dovrebbe essere sufficiente mettere il file condiviso (es.
“condiviso.rb”) sotto models/ e nel modello che lo usa aggiungere un
“require ‘condiviso’”. Se/quando viene ricaricato il modello, verrà
ricaricato anche il file condiviso.

il file viene trovato e caricato, ma non viene ricaricato ogni volta. il
require_dependency suggerito da francesco dovrebbe risolvere il
problema. mò
provo.

parlando di loading in rails, qualcuno di voi ha idea di come funzioni
l’hack del meccanismo di loading utilizzato ad esempio da typo con i
temi? è
come credo un hack o c’è un modo pulito di farlo?


#7

chiaro scuro wrote:

vero, ma in fase di sviluppo è una sofferenza dover riavviare.

ah ok

non c'e' una indicazione precisa di "stile", potresti metterlo anche
nella directory models se fosse utilizzato solo da questi... 

mmmh e mi viene tirato su automaticamente? non lo sapevo, thanks…
wait… su questo non sono sicuro (se per automaticamente intendi senza
bisogno di riavvio)! e’ solo che la dir models e’ inclusa nelle
directory da cui Rails carica il codice esattamente come lib. (al
contrario se tu colessi metterlo in app/mie_lib dovresti modificare
config.load_paths)

Luca

Web: http://spazidigitali.com - http://thetyper.com
Email mailto://removed_email_address@domain.invalid
Skype callto://l.mearelli