如何在 Ruby >= 3.0.0 中始终使用自定义注释字符串作为 IRB 返回值的前缀?

问题描述

我的 ~/.irbrc 文件中有以下内容

IRB.conf[:PROMPT][:DEFAULT][:RETURN].prepend ?#

在早期的 Ruby 版本中,这将确保每个返回值都以注释符号为前缀,而不仅仅是关联标记(例如 #=> 而不是 =>),这允许剪切和粘贴进入 REPL,而不评估返回值。但是,升级到 Ruby 3.0.0 后,似乎较新版本的 IRB 偶尔会包装长返回值的输出,我不确定如何确保正确注释掉所有返回值。例如,考虑一下现在来自 unrelated post 的典型输出

s1 = Suggestion.new :foo,%w[Alice Bob]
#=> #<Suggestion:0x00007f9671154578 @participants=["Alice","Bob"],@type=:foo>

s2 = Suggestion.new :bar,%w[Charlie Dana]
#=> #<Suggestion:0x00007faed7113900 @participants=:bar,@type=:foo>

Suggestion.all
#=>
[#<Suggestion:0x00007f9671154578 @participants=["Alice",@type=:foo>,#<Suggestion:0x00007f9671089058
  @participants=["Charlie","Dana"],@type=:bar>]

这里,前两行代码正确显示了前面有注释字符的返回值,但第三行返回的数组导致返回值跟随定义的注释字符。 Ruby 3.0.0 IRB module 没有说明这种包装行为,也没有提供关于如何将多行返回值一致地格式化为注释的任何明显线索。

如何确保 IRB 中返回值的所有行都以注释字符为前缀?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)