Issue #12159 has been updated by Satoshi TAGOMORI.


Usaku NAKAMURA wrote:
> I guess that it's intentional.
> `absolute_path` guarantees to contain the absolute path, but `path` does not guarantee so.
> It may contain the absolute path or may not.
> 
> note: not only in `require_relative` but also in `require`.

If so, I think it's better to write "Returns the file name or absolute path of this frame" in document.
http://docs.ruby-lang.org/en/2.3.0/Thread/Backtrace/Location.html#method-i-path

----------------------------------------
Bug #12159: Thread::Backtrace::Location#path returns absolute path for files loaded by require_relative
https://bugs.ruby-lang.org/issues/12159#change-57373

* Author: Satoshi TAGOMORI
* Status: Assigned
* Priority: Normal
* Assignee: Koichi Sasada
* ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin14]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
I expected that Thread::Backtrace::Location#path always returns base filename, but returns absolute path for files loaded by require_relative.
Is it intentional? or a bug?

~~~
$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin14]
$ cat > x.rb
def a
  caller_locations
end

p a.first.path
$ cat > y.rb
require_relative "x"
$ ruby x.rb 
"x.rb"
$ ruby y.rb
"/Users/tagomoris/x.rb"
~~~



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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>