【发布时间】:2018-06-05 21:31:59
【问题描述】:
我正在构建一个有点类似于 nil 的对象,它被称为 nil_query,并且是一个名为 NilQuery 的单例类的实例。
我希望此类在 Pry 中调用时以类似于 true、false 和 nil 的方式显示,这意味着我希望它以自己的特殊颜色显示,而不仅仅是白色:
我的第一个想法(这就是我得到上图结果的方式)只是将 NilQuery 的检查方法中的字符串更改为包含颜色格式:
class NilQuery
def inspect
"\e[36;1mnil_query\e[0m"
end
end
当然,这是一个糟糕的主意,因为它改变了所有错误的显示方式,包括定义终端输出的数字字符串。因此,如果我在 nil_query 中调用一个随机的未定义方法,错误将如下所示:
NoMethodError: undefined method `random_method' for "\e[36;1mnil_query\e[0m":NilQuery
他们有什么好的解决方案吗?我试着研究一下漂亮的印刷品,但很难找到任何关于如何使用它的好文档。
TL;DR - 如何更改特定对象或值在 Pry 中显示的颜色和格式?
【问题讨论】: