def start(requirements)
verify_gemfile_dependencies_are_found!(requirements)
dg = @resolver.resolve(requirements, @base_dg)
dg.map(&:payload).map(&:to_specs).flatten
rescue Molinillo::VersionConflict => e
raise VersionConflict.new(e.conflicts.keys.uniq, e.message)
rescue Molinillo::CircularDependencyError => e
names = e.dependencies.sort_by(&:name).map { |d| "gem '#{d.name}'"}
raise CyclicDependencyError, "Your Gemfile requires gems that depend" \
" on each other, creating an infinite loop. Please remove" \
" #{names.count > 1 ? 'either ' : '' }#{names.join(' or ')}" \
" and try again."
end