Domanda

Posso chiedere rubino o RubyGems per usare l'ultima gemma a prescindere dalla sua fonte?

Come menzionato nella aggiornamento questa domanda , si scopre che è rubino utilizzando un gioiello github vecchio (hmcgowan-roo 1.3.5) su una gemma RubyForge più recente che è stato installato più di recente (roo 1.3.6).

Il mio sospetto è che il folletto magico (o rubino o rubygems) guarda sotto "h" prima di guardare in "r".

posso forzare il RubyForge uno per essere utilizzato da fare

gem "roo"

ma è possibile dire rubino / rubygems che sono felice di utilizzare hmcgowan-roo o roo, ma voglio che la versione più recente?

È stato utile?

Soluzione

No, non c'è alcun modo purtroppo. Per quanto riguarda la RubyGems è interessato, non sono la stessa gemma, così RubyGems è in grado di determinare automaticamente che è la versione più recente. Ai fini della paranoia, la linea di richiedere dovrebbe essere considerato non-deterministico, se non c'è una chiamata al metodo gemma e si dispone di più versioni della stessa libreria installata.

In generale, si desidera che le chiamate al metodo gemma per essere collocata in un luogo diverso dal vostro richiede comunque (questo permette ai file di essere pigro-caricato), quindi è perfettamente ragionevole avere un file aggiornato di frequente che viene eseguito solo una mucchio di chiamate al metodo gemma per garantire che hai la versione giusta di tutto. Inoltre, nella produzione, in genere non si vuole fare "dammi l'ultima versione" perché la versione più recente potrebbe aver cambiato le sue API o rinominati alcuni metodi o simili, e se non hai provato contro di essa, non è necessario sapere se romperà. Si dovrebbe sempre essere fare in modo che si sta utilizzando una specifica, noto al lavoro la versione di ogni libreria di terze parti.

Come autore biblioteca, io di solito dare alla gente per informare di una o due versioni testa a testa se ho intenzione di apportare modifiche che si rompono l'utilizzo più vecchia delle API. Tuttavia, a volte le persone non aggiornano per un po ', e farsi prendere da questo. Fortunatamente la maggior parte persone sono attenti, e le cose di scena. Non essere il ragazzo che aggiorna le librerie direttamente in produzione senza testarli. : -)

Altri suggerimenti

Si potrebbe utilizzare il metodo gemma per specificare che quello che si desidera.

RubyGems Manuale - Capitolo 4

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top