首页 > 解决方案 > 如何在 Ruby >= 3.0.0 中始终使用自定义注释字符串为 IRB 返回值添加前缀?

问题描述

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

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

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

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", "Bob"], @type=:foo>,
 #<Suggestion:0x00007f9671089058
  @participants=["Charlie", "Dana"],
  @type=:bar>]

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

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

标签: rubyconfigurationcommentsreturn-valueirb

解决方案


推荐阅读