Method: Bio::Command.mktmpdir
- Defined in:
- lib/bio/command.rb
.mktmpdir(prefix = 'd', tmpdir = nil, &block) ⇒ Object
Backport of Dir.mktmpdir in Ruby 1.9.
Same as Dir.mktmpdir(prefix_suffix) in Ruby 1.9 except that prefix must be a String, nil, or omitted.
Arguments:
-
(optional) prefix: String
367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 |
# File 'lib/bio/command.rb', line 367 def mktmpdir(prefix = 'd', tmpdir = nil, &block) prefix = prefix.to_str begin Dir.mktmpdir(prefix, tmpdir, &block) rescue NoMethodError suffix = '' # backported from Ruby 1.9.0. # ***** Below is excerpted from Ruby 1.9.0's lib/tmpdir.rb **** # ***** Be careful about copyright. **** tmpdir ||= Dir.tmpdir t = Time.now.strftime("%Y%m%d") n = nil begin path = "#{tmpdir}/#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}" path << "-#{n}" if n path << suffix Dir.mkdir(path, 0700) rescue Errno::EEXIST n ||= 0 n += 1 retry end if block_given? begin yield path ensure remove_entry_secure path end else path end # ***** Above is excerpted from Ruby 1.9.0's lib/tmpdir.rb **** end end |