Project

General

Profile

Feature #14855

Binding#irb の中では、呼び出し元の __FILE__ と __dir__ をとりたい

Added by takkanm (三村 益隆) 29 days ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-dev:50580]

Description

現在、Binding#irb の中で呼び出した FILEdir が irb で設定されたもののままとなっています。
これだと、ソースコード中に埋め込んで試す際に不便なので、実際のソースコードのファイルが読み取れるとうれしいです。

そのパッチとして https://github.com/ruby/ruby/pull/1896 を作りました。

現時点は以下のようになります。

$ cat binding_irb.rb
binding.irb

$ ruby binding_irb.rb

From: binding_irb.rb @ line 1 :

 => 1: binding.irb

irb(main):001:0> __FILE__
=> "(irb)"
irb(main):002:0> __dir__
=> "."

このパッチを適用すると以下のようになります。

$ ruby binding_irb.rb

From: binding_irb.rb @ line 1 :

 => 1: binding.irb

irb(main):001:0> __FILE__
=> "/Users/takkanm/tmp/binding_irb.rb"
irb(main):002:0> __dir__
=> "/Users/takkanm/tmp"
irb(main):003:0>

Also available in: Atom PDF