class Bundler::PubGrub::VersionUnion

def intersects?(other)

def intersects?(other)
  my_ranges = ranges.dup
  other_ranges = other.ranges.dup
  my_range = my_ranges.shift
  other_range = other_ranges.shift
  while my_range && other_range
    if my_range.intersects?(other_range)
      return true
    end
    if !my_range.max || other_range.empty? || (other_range.max && other_range.max < my_range.max)
      other_range = other_ranges.shift
    else
      my_range = my_ranges.shift
    end
  end
end