diff options
Diffstat (limited to 'lib/rubygems/package/tar_writer.rb')
-rw-r--r-- | lib/rubygems/package/tar_writer.rb | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/rubygems/package/tar_writer.rb b/lib/rubygems/package/tar_writer.rb index dfd635724b..fff02e9235 100644 --- a/lib/rubygems/package/tar_writer.rb +++ b/lib/rubygems/package/tar_writer.rb @@ -234,6 +234,25 @@ class Gem::Package::TarWriter end ## + # Adds symlink +name+ with permissions +mode+, linking to +target+. + + def add_symlink(name, target, mode) + check_closed + + name, prefix = split_name name + + header = Gem::Package::TarHeader.new(:name => name, :mode => mode, + :size => 0, :typeflag => "2", + :linkname => target, + :prefix => prefix, + :mtime => Time.now).to_s + + @io.write header + + self + end + + ## # Raises IOError if the TarWriter is closed def check_closed @@ -323,4 +342,3 @@ class Gem::Package::TarWriter end end - |