class Gem::Package::TarWriter
Constants
- LONGLINK_NAME
Public Instance Methods
add_long_link(name, mode)
click to toggle source
# File lib/simple_backup/source/abstract.rb, line 11 def add_long_link(name, mode) check_closed raise Gem::Package::NonSeekableIO unless @io.respond_to? :pos= init_pos = @io.pos @io.write "\0" * 512 # placeholder for the header @io.write name size = @io.pos - init_pos - 512 remainder = (512 - (size % 512)) % 512 @io.write "\0" * remainder final_pos = @io.pos @io.pos = init_pos header = Gem::Package::TarHeader.new name: LONGLINK_NAME, mode: mode, size: size, prefix: '', typeflag: 'L' @io.write header @io.pos = final_pos self end
add_longname_file(*arguments)
click to toggle source
# File lib/simple_backup/source/abstract.rb, line 37 def add_longname_file(*arguments) tries ||= 1 if block_given? add_file(*arguments, &Proc.new) else add_file(*arguments) end rescue Gem::Package::TooLongFileName => e add_long_link *arguments arguments.first.slice!(0, 100) retry if (tries -= 1) >= 0 raise e end