Вы в gemspec указываете зависимость от других гемов с указанием желаемой версии. При установке вашего гема вместе с другими гемами bundler находит и ставит версию зависимости, удовлетворяющую всем запросам всех гемов и запросам из Gemfile.
Если такой версии не будет найдено то возникнет конфликт, о котором бандлер вам сообщит.
Например в геме 'your_gem' вы указали зависимость
spec.add_runtime_dependency 'pg', '>= 9.5'
а в гемфайле приложения
gem 'your_gem'
gem 'pg', '= 9.2' # Будет конфликт т.к. your_gem требует pg > 9.2
gem 'pg', '>= 9.2' # Конфликта нет, установится последняя версия >= 9.5
Про синтаксис зависимостей читайте тут:
guides.rubygems.org/patterns
Так же нелишне ознакомиться с понятием семантического версионирования