mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
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 "#<Proc:0x00000237a0f5f170 t.rb:1>" [Feature #16101]
This commit is contained in:
parent
0623e2b7cc
commit
182a408c2c
4 changed files with 8 additions and 8 deletions
|
@ -370,7 +370,7 @@ class Gem::Installer
|
||||||
if hook.call(self) == false
|
if hook.call(self) == false
|
||||||
FileUtils.rm_rf gem_dir
|
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}"
|
message = "post-build hook#{location} failed for #{spec.full_name}"
|
||||||
raise Gem::InstallError, message
|
raise Gem::InstallError, message
|
||||||
|
|
2
proc.c
2
proc.c
|
@ -1310,7 +1310,7 @@ rb_block_to_s(VALUE self, const struct rb_block *block, const char *additional_i
|
||||||
case block_type_iseq:
|
case block_type_iseq:
|
||||||
{
|
{
|
||||||
const rb_iseq_t *iseq = rb_iseq_check(block->as.captured.code.iseq);
|
const rb_iseq_t *iseq = rb_iseq_check(block->as.captured.code.iseq);
|
||||||
rb_str_catf(str, "%p@%"PRIsVALUE":%d", (void *)self,
|
rb_str_catf(str, "%p %"PRIsVALUE":%d", (void *)self,
|
||||||
rb_iseq_path(iseq),
|
rb_iseq_path(iseq),
|
||||||
FIX2INT(iseq->body->location.first_lineno));
|
FIX2INT(iseq->body->location.first_lineno));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
describe :proc_to_s, shared: true do
|
describe :proc_to_s, shared: true do
|
||||||
describe "for a proc created with Proc.new" do
|
describe "for a proc created with Proc.new" do
|
||||||
it "returns a description optionally including file and line number" do
|
it "returns a description optionally including file and line number" do
|
||||||
Proc.new { "hello" }.send(@method).should =~ /^#<Proc:([^ ]*?)(@([^ ]*)\/to_s\.rb:4)?>$/
|
Proc.new { "hello" }.send(@method).should =~ /^#<Proc:([^ ]*?)( ([^ ]*)\/to_s\.rb:4)?>$/
|
||||||
end
|
end
|
||||||
|
|
||||||
it "has a binary encoding" do
|
it "has a binary encoding" do
|
||||||
|
@ -11,7 +11,7 @@ describe :proc_to_s, shared: true do
|
||||||
|
|
||||||
describe "for a proc created with lambda" do
|
describe "for a proc created with lambda" do
|
||||||
it "returns a description including '(lambda)' and optionally including file and line number" do
|
it "returns a description including '(lambda)' and optionally including file and line number" do
|
||||||
-> { "hello" }.send(@method).should =~ /^#<Proc:([^ ]*?)(@([^ ]*)\/to_s\.rb:10)? \(lambda\)>$/
|
-> { "hello" }.send(@method).should =~ /^#<Proc:([^ ]*?)( ([^ ]*)\/to_s\.rb:14)? \(lambda\)>$/
|
||||||
end
|
end
|
||||||
|
|
||||||
it "has a binary encoding" do
|
it "has a binary encoding" do
|
||||||
|
@ -21,7 +21,7 @@ describe :proc_to_s, shared: true do
|
||||||
|
|
||||||
describe "for a proc created with proc" do
|
describe "for a proc created with proc" do
|
||||||
it "returns a description optionally including file and line number" do
|
it "returns a description optionally including file and line number" do
|
||||||
proc { "hello" }.send(@method).should =~ /^#<Proc:([^ ]*?)(@([^ ]*)\/to_s\.rb:16)?>$/
|
proc { "hello" }.send(@method).should =~ /^#<Proc:([^ ]*?)( ([^ ]*)\/to_s\.rb:24)?>$/
|
||||||
end
|
end
|
||||||
|
|
||||||
it "has a binary encoding" do
|
it "has a binary encoding" do
|
||||||
|
@ -32,7 +32,7 @@ describe :proc_to_s, shared: true do
|
||||||
describe "for a proc created with UnboundMethod#to_proc" do
|
describe "for a proc created with UnboundMethod#to_proc" do
|
||||||
it "returns a description including '(lambda)' and optionally including file and line number" do
|
it "returns a description including '(lambda)' and optionally including file and line number" do
|
||||||
def hello; end
|
def hello; end
|
||||||
method("hello").to_proc.send(@method).should =~ /^#<Proc:([^ ]*?)(@([^ ]*)\/to_s\.rb:22)? \(lambda\)>$/
|
method("hello").to_proc.send(@method).should =~ /^#<Proc:([^ ]*?)( ([^ ]*)\/to_s\.rb:22)? \(lambda\)>$/
|
||||||
end
|
end
|
||||||
|
|
||||||
it "has a binary encoding" do
|
it "has a binary encoding" do
|
||||||
|
|
|
@ -1188,8 +1188,8 @@ class TestProc < Test::Unit::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_to_s
|
def test_to_s
|
||||||
assert_match(/^#<Proc:0x\h+@#{ Regexp.quote(__FILE__) }:\d+>$/, proc {}.to_s)
|
assert_match(/^#<Proc:0x\h+ #{ Regexp.quote(__FILE__) }:\d+>$/, proc {}.to_s)
|
||||||
assert_match(/^#<Proc:0x\h+@#{ Regexp.quote(__FILE__) }:\d+ \(lambda\)>$/, lambda {}.to_s)
|
assert_match(/^#<Proc:0x\h+ #{ Regexp.quote(__FILE__) }:\d+ \(lambda\)>$/, lambda {}.to_s)
|
||||||
assert_match(/^#<Proc:0x\h+ \(lambda\)>$/, method(:p).to_proc.to_s)
|
assert_match(/^#<Proc:0x\h+ \(lambda\)>$/, method(:p).to_proc.to_s)
|
||||||
x = proc {}
|
x = proc {}
|
||||||
x.taint
|
x.taint
|
||||||
|
|
Loading…
Reference in a new issue