2013-03-09 4 views
9

Ho appena creato una gemma test con fagotto e ha creato un file .gem con contenuto illeggibile quindi mi chiedevoCosa contiene un file .gem? Come viene utilizzato dal framework Rails?

  1. quello che fa quel file .gem contiene? sono questi dati binari? come un tempo pensavo che i file .gem contengano funzioni ruby ​​impacchettate

  2. come viene utilizzato il file .gem dal framework rails? dal momento che non sembra un modulo

Grazie

risposta

5

Puoi vedere cosa sta succedendo se controlli il file sul tuo file system.

In un ambiente Posix, è possibile controllare il file con il comando file:

$: file bundler-1.3.0.gem   
bundler-1.3.0.gem: POSIX tar archive 

Come potete vedere si tratta di un archivio tar. Quindi è un file binario, confezionato e gestito dallo strumento gem.

È "binario", quindi non lo vedrai come ti saresti aspettato.

Tuttavia, si è certi e si può continuare a pensare che contenga "funzioni" ruby ​​impacchettate.

Tutto ciò che hai detto di contenere tramite il tuo gemspec (comunque lo hai incluso) è lì.

Per quanto riguarda il modo in cui Rails utilizza il gemfile, viene utilizzato in genere installando la gemma sul sistema, in quanto ciò è parzialmente dipendente dalle decisioni sull'ambiente.

5

Un file gemma è solo un archivio tar contenente (almeno) un file gemspec. Di solito ci sono anche file di origine ruby ​​e possibilmente codice nativo o risorse di supporto (ad esempio un gioiello progettato per essere usato con le rotaie potrebbe anche confezionare qualche javascript). È anche comune includere README, CHANGELOG e altra documentazione.

+0

Grazie, come posso vedere/aprire un file gem? – iCyborg

+0

Fai finta che sia un normale file tar - tar -xvf foo.gem –