Каждый указанный вами драгоценный камень будет иметь список зависимых драгоценных камней, которые он должен запустить, и каждая из этих зависимостей будет иметь минимальную и максимальную совместимую версию.
Когда пакет разрешает зависимости, он в первую очередьобеспечение того, что запрашиваемый вами набор гемов даже возможен (т. е. нет ни одного камня, требующего ActionPack <4, а другого, требующего ActionPack> 5).
После того, как он определит, существует ли набор гемов, который удовлетворяет всем требованиям, он начинает загрузку по мере необходимости.Я предполагаю, что он выбирает последнюю версию, которая удовлетворяет каждой существующей зависимости.