Project

General

Profile

Feature #16688

Updated by Dan0042 (Daniel DeLorme) about 4 years ago

I often work with Pathname objects, but when passing them to a system command I find it a bit tedious that they have to be explicitly converted to a String. 

 ```ruby 
 file = BASE + "config.json" 
 system(@cmd, file)        #=> TypeError (no implicit conversion of Pathname into String) 
 system(@cmd, file.to_s) #=> works 
 ``` 

 I propose that the system/exec/spawn family of methods should try to convert their arguments using `to_path`, if `to_str` fails. I believe it makes perfect sense, since commandline arguments are so often pathnames. 

 This includes in/out redirection. `system("ls", out: Pathname.new("file"))` should be valid.

Back