Project

General

Profile

Feature #16101

Proc#to_s returns "... file:line" instead of "...@file:line"

Added by ko1 (Koichi Sasada) 3 months ago. Updated 3 months ago.

Status:
Assigned
Priority:
Normal
Target version:
-
[ruby-core:94341]

Description

In [Feature #14145],
https://bugs.ruby-lang.org/issues/14145#note-25

I think (a space) is better, and it's what we use for Method#inspect in TruffleRuby.
My motivation is that selection by double-clicking in the terminal just works with a space,
but fails with @ and results in 0x00007f850b8f9458@-e when double-clicking on the filename (-e here).
I find it also easier to read.

I try to introduce this change (@ -> ).

Compatibility issue

Someone can depend on this string format. In fact, rubygems requires this patch.

diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
index b230ce7bed..554cfc4509 100644
--- a/lib/rubygems/installer.rb
+++ b/lib/rubygems/installer.rb
@@ -370,7 +370,7 @@ def run_post_build_hooks # :nodoc:
       if hook.call(self) == false
         FileUtils.rm_rf gem_dir

-        location = " at #{$1}" if hook.inspect =~ /@(.*:\d+)/
+        location = " at #{$1}" if hook.inspect =~ / (.*:\d+)/

         message = "post-build hook#{location} failed for #{spec.full_name}"
         raise Gem::InstallError, message

But I think we shouldn't use this string, but use source_location method.
I'll commit it. and if you have an issue, pls re-open it.


Related issues

Related to Ruby master - Feature #14145: Proposal: Better Method#inspectOpenActions

Associated revisions

Revision 182a408c
Added by ko1 (Koichi Sasada) 3 months ago

change Proc#to_s format ('@...' -> ' ...') (#2362)

Now Proc#to_s returns
"#Proc:0x00000237a0f5f170@t.rb:1".
However, it is convenient to select a file name by (double-)clicking
on some terminals by separating ' ' instead of '@' like
"#"
[Feature #16101]

History

#1

Updated by ko1 (Koichi Sasada) 3 months ago

#2

Updated by ko1 (Koichi Sasada) 3 months ago

  • Status changed from Open to Closed

Applied in changeset git|182a408c2c4113eb316c2a87e35880144afb4498.


change Proc#to_s format ('@...' -> ' ...') (#2362)

Now Proc#to_s returns
"#Proc:0x00000237a0f5f170@t.rb:1".
However, it is convenient to select a file name by (double-)clicking
on some terminals by separating ' ' instead of '@' like
"#"
[Feature #16101]

Updated by hsbt (Hiroshi SHIBATA) 3 months ago

  • Status changed from Closed to Assigned

Also available in: Atom PDF