Issue #7547 has been reported by jstanley0 (Jeremy Stanley).

----------------------------------------
Bug #7547: Dir.mktmpdir('~something') tries to expand a profile directory
https://bugs.ruby-lang.org/issues/7547

Author: jstanley0 (Jeremy Stanley)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin11.4.2]


A change to Dir.mktmpdir sometime between 1.8.7 and 1.9.3 introduced a bug when the prefix starts with a tilde character ('~').  If you try to use the prefix "~something", then instead of creating a subdirectory under the temporary directory named (e.g.) '~something-12345' (which is what ruby 1.8.7 does), it will try to resolve the profile directory for the (hopefully nonexistent) user 'something-12345'.

This is easy to reproduce in irb:

 neodymium:~ jeremy$ irb
 irb(main):001:0> require 'tmpdir'
 => true
 irb(main):002:0> Dir.mktmpdir('wut')
 => "/var/folders/9z/rqj62zxj60s3c12p2rdqm_3m0000gp/T/wut20121211-7622-1ff0o11"
 irb(main):003:0> Dir.mktmpdir('~wut')
 ArgumentError: user wut20121211-7622-1m76is9 doesn't exist
 	from /Users/jeremy/.rbenv/versions/1.9.3-p327/lib/ruby/1.9.1/tmpdir.rb:132:in `expand_path'
 	from /Users/jeremy/.rbenv/versions/1.9.3-p327/lib/ruby/1.9.1/tmpdir.rb:132:in `create'
 	from /Users/jeremy/.rbenv/versions/1.9.3-p327/lib/ruby/1.9.1/tmpdir.rb:80:in `mktmpdir'
 	from (irb):3
 	from /Users/jeremy/.rbenv/versions/1.9.3-p327/bin/irb:12:in `<main>'
 irb(main):004:0> 
 


-- 
http://bugs.ruby-lang.org/