Project

General

Profile

Feature #13576

File#to_path shall be deleted

Added by shyouhei (Shyouhei Urabe) over 2 years ago. Updated 5 months ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:81268]

Description

[Feature #13568] sheds light on situations where a File might not have its corresponding path. I understand that this is a nature of a file in general, that it might or might not have such thing. I don't argue that fact.

Problem is however, that ruby's File class has its to_path method. The to_path method is used internally right before calling open(). The intention is clear that the return value of to_path must be something meaningful as an argument to that function. This is impossible for a O_TEMPFILE -created file descriptor, because such file can never be opened again.

So in general, calling to_path over a File instance is a mistake. Let's not do it.

History

Updated by nobu (Nobuyoshi Nakada) over 2 years ago

Agree, it has no meanings.

Updated by Eregon (Benoit Daloze) over 2 years ago

This could break methods which take a pathname-like object and call #to_path when a File is passed to them (e.g. File.delete(file), etc).
I am not saying it is good practice, but I think it should be evaluated for compatibility.

Maybe it's just easier to return nil for to_path on that case, just like File#path?

#3

Updated by jeremyevans0 (Jeremy Evans) 5 months ago

  • Backport deleted (2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN)
  • Tracker changed from Bug to Feature

Also available in: Atom PDF