Czy istnieje sposób sprawdzenia, czy mam najnowszą wersję klejnotu z programu Ruby? To znaczy, czy jest jakiś sposób programowo wykonać bundle outdated #{gemname}
?Sprawdź wersję klejnotu z wiązarką od wewnątrz Ruby
Próbowałem spojrzeć na kod źródłowy bundler'a, ale nie mogłem znaleźć prostego sposobu. Obecnie robię to, co jest delikatne, powolne i tak nieeleganckie:
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
Dziękuję, wiele odpowiedzi potwierdza moje odkrycia: nie ma na to API. Wybrałem jeden oparty na tym, że zapewnia działający fragment kodu, aby osiągnąć to zadanie. – Pablo
Myślę, że wybrana odpowiedź ma kilka błędów. Istnieje "exit 1", który zakończyłby wykonywanie twojego programu. Czy udało ci się uruchomić ten kod? Podczas próby wypróbowania wystąpił błąd. – Emil
Po prostu wprowadzili 'exit 1' pomiędzy wersjami 1.2.x i 1.3.x, więc teraz wymaga trochę łatania małp do pracy. –