aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/package/tar_writer.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/package/tar_writer.rb')
-rw-r--r--lib/rubygems/package/tar_writer.rb20
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
-