ruby - 如何在 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 中返回值的所有行都以注释字符为前缀?
解决方案
推荐阅读
- r - 聚类数据的 Cox 模型-SAS 和 R
- html - 使用CSS在第二个表中选择第一个表的第一行和第二个表中具有相同类的最后一行
- javascript - How to cast a plain object as a instance of another type in JavaScript
- c++ - 无法在模板化 using 语句中为方法函数指定模板参数
- python - 调整大小和重塑形状有什么区别?
- python-3.x - 我收到错误消息“条件需要布尔数组,而不是 int64”。有人可以帮我解决这个问题吗?
- ios - 安装 pod 'CLTypingLabel' 时出错。我不知道如何解决它。我已经尝试了很多次。请有人帮助我
- excel - 将 Excel 值合并到新内容中
- c++ - 三角矩阵对象
- ubuntu - 如何在 Ubuntu 20.04.1 LTS 上激活 SELinux