def split_name(name)
if name.bytesize > 256 then
raise ::Gem::Package::TooLongFileName.new("File \"#{name}\" has a too long path (should be 256 or less)")
end
prefix = ''
if name.bytesize > 100 then
parts = name.split('/', -1)
name = parts.pop
prefix = parts.join('/')
while !parts.empty? && (prefix.bytesize > 155 || name.empty?)
name = parts.pop + '/' + name
prefix = parts.join('/')
end
if name.bytesize > 100 or prefix.empty? then
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