C'è un modo per verificare di avere l'ultima versione di una gemma all'interno di un programma Ruby? Cioè, c'è un modo per fare bundle outdated #{gemname}
a livello di programmazione?Verifica la versione di una gemma con il bundler dall'interno di Ruby
Ho provato a guardare il codice sorgente di bundler ma non sono riuscito a trovare un modo diretto. Attualmente sto facendo questo, che è fragile, lenta e così poco elegante:
IO.popen(%w{/usr/bin/env bundle outdated gemname}) do |proc|
output = proc.readlines.join("\n")
return output.include?("Your bundle is up to date!")
end
Grazie ragazzi, molte risposte confermano le mie conclusioni: non ci sono API per farlo. Ne ho scelto uno basato sul fatto che fornisce un pezzo di codice funzionante per raggiungere questo compito. – Pablo
Penso che la risposta che hai scelto abbia dei trucchi. Esiste un 'exit 1' che interrompe l'esecuzione del programma. Sei riuscito a far funzionare quel codice? Ho avuto un errore durante il tentativo. – Emil
Hanno appena introdotto il 'exit 1' tra le versioni 1.2.xe 1.3.x, quindi ora richiede un po 'di patch-patch per risolvere il problema. –