class Bundler::CLI::Gem

def ensure_safe_gem_name(name, constant_array)

def ensure_safe_gem_name(name, constant_array)
  if /^\d/.match?(name)
    Bundler.ui.error "Invalid gem name #{name} Please give a name which does not start with numbers."
    exit 1
  end
  constant_name = constant_array.join("::")
  existing_constant = constant_array.inject(Object) do |c, s|
    defined = begin
      c.const_defined?(s)
    rescue NameError
      Bundler.ui.error "Invalid gem name #{name} -- `#{constant_name}` is an invalid constant name"
      exit 1
    end
    (defined && c.const_get(s)) || break
  end
  return unless existing_constant
  Bundler.ui.error "Invalid gem name #{name} constant #{constant_name} is already in use. Please choose another gem name."
  exit 1
end