some versions of Ruby had a broken Tempfile which didn’t work well with unlinked files. This one is much shorter, easier to understand, and slightly faster.
creates and returns a new File object. The File is unlinked immediately, switched to binary mode, and userspace output buffering is disabled
# File lib/phusion_passenger/utils/tmpio.rb, line 15 def self.new(namespace, options = nil) if options mode = options[:mode] || RDWR binary = options.fetch(:binary, true) suffix = options[:suffix] unlink_immediately = options.fetch(:unlink_immediately, true) else mode = RDWR binary = true suffix = nil unlink_immediately = true end fp = begin super("#{Dir::tmpdir}/#{namespace}-#{rand(0x100000000).to_s(36)}#{suffix}", mode | CREAT | EXCL, 0600) rescue Errno::EEXIST retry end unlink(fp.path) if unlink_immediately fp.binmode if binary fp.sync = true fp end
Generated with the Darkfish Rdoc Generator 2.