2011-12-01 15 views
6

ragazzi!Quali sono le migliori pratiche di riutilizzo del codice tra diversi progetti Ruby?

Sono uno sviluppatore di software con background Java e sto avviando alcuni progetti utilizzando un framework web Ruby (Padrino/Sinatra).

Nei miei progetti Java, di solito avevo alcuni progetti "comuni" le cui classi erano utilizzate in diversi progetti. Ad esempio, disponevo di un servizio di autenticazione centrale e di un database condiviso che memorizzava i profili utente. Tutti i miei progetti che hanno utilizzato questo servizio hanno condiviso alcuni modelli mappati al database del profilo utente.

Quindi, nonostante il framework, orm lib ecc., Qual è il modo migliore di condividere il codice tra diversi progetti Ruby?

risposta

4

Oltre a questo, ruby's gems è uno dei modi migliori per riutilizzare parti comuni del codice. Le gemme hanno nomi, numeri di versione e descrizioni e quindi è possibile mantenere facilmente versioni aggiornate di queste librerie, installare e disinstallare, gestire le installazioni locali di gemme del computer utilizzando il comando gem, disponibile dalla riga di comando. Le gemme sono diventate standard con Ruby 1.9, ma prima devi usare la riga require 'rubygems' negli script. Esistono diversi strumenti che consentono di crearli, ad esempio, bundler. Bundler non è solo uno strumento per la creazione di gemme, ma un gestore di dipendenze di un'applicazione fantastica.

0

Inserire il codice in un file something.rb e require nella parte superiore degli altri script.

È inoltre possibile utilizzare load anziché require, ma l'require ha la bella proprietà che non includerà un file più di una volta. Inoltre, utilizzando load richiede l'estensione .rb, mentre require non lo fa, vale a dire,

#some_script.rb 
puts('hello world') 

#another script 
require 'some_script' 
>> hello world 

load 'some_script' 
LoadError: no such file to load -- some_script 
    from (irb):2:in 'load' 
    from (irb):2 

Sarà quasi sempre usare require, ma load è un'opzione così se si vuole usarlo per ... qualsiasi motivo.

+0

Penso che voglia dire qual è il modo migliore per condividere ** something.rb ** su più cartelle di progetto. Devo fare anche questo. –

Problemi correlati