class Gem::Package::TarWriter

def split_name(name) # :nodoc:

:nodoc:
def split_name(name) # :nodoc:
  if name.bytesize > 256
    raise Gem::Package::TooLongFileName.new("File \"#{name}\" has a too long path (should be 256 or less)")
  end
  if name.bytesize <= 100 then
    prefix = ""
  else
    parts = name.split(/\//)
    newname = parts.pop
    nxt = ""
    loop do
      nxt = parts.pop
      break if newname.bytesize + 1 + nxt.bytesize > 100
      newname = nxt + "/" + newname
    end
    prefix = (parts + [nxt]).join "/"
    name = newname
    if name.bytesize > 100
      raise Gem::Package::TooLongFileName.new("File \"#{prefix}/#{name}\" has a too long name (should be 100 or less)")
    end
    if prefix.bytesize > 155 then
      raise Gem::Package::TooLongFileName.new("File \"#{prefix}/#{name}\" has a too long base path (should be 155 or less)")
    end
  end
  return name, prefix
end