Class: Pitchfork::TmpIO
- Inherits:
-
File
- Object
- File
- Pitchfork::TmpIO
- Defined in:
- lib/pitchfork/tmpio.rb
Overview
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.
Class Method Summary collapse
-
.new ⇒ Object
creates and returns a new File object.
Class Method Details
.new ⇒ Object
creates and returns a new File object. The File is unlinked immediately, switched to binary mode, and userspace output buffering is disabled
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/pitchfork/tmpio.rb', line 14 def self.new path = nil # workaround File#path being tainted: # https://bugs.ruby-lang.org/issues/14485 fp = begin path = "#{Dir::tmpdir}/#{rand}" super(path, RDWR|CREAT|EXCL, 0600) rescue Errno::EEXIST retry end unlink(path) fp.binmode fp.sync = true fp end |