class PhusionPassenger::Utils::TmpIO
to understand, and slightly faster.
well with unlinked files. This one is much shorter, easier
some versions of Ruby had a broken Tempfile which didn’t work
def self.new(namespace, options = nil)
immediately, switched to binary mode, and userspace output
creates and returns a new File object. The File is unlinked
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
def size
def size stat.size end unless File.method_defined?(:size)