    # File lib/rubygems/package.rb, line 59
      def self.pack(src, destname, signer = nil)
        TarOutput.open(destname, signer) do |outp|
          dir_class.chdir(src) do
            outp.metadata = (file_class.read("RPA/metadata") rescue nil)
            find_class.find('.') do |entry|
              case
              when file_class.file?(entry)
                entry.sub!(%r{\./}, "")
                next if entry =~ /\ARPA\//
                stat = File.stat(entry)
                outp.add_file_simple(entry, stat.mode, stat.size) do |os|
                  file_class.open(entry, "rb") do |f|
                    os.write(f.read(4096)) until f.eof?
                  end
                end
              when file_class.dir?(entry)
                entry.sub!(%r{\./}, "")
                next if entry == "RPA"
                outp.mkdir(entry, file_class.stat(entry).mode)
              else
                raise "Don't know how to pack this yet!"
              end
            end
          end
        end
      end