Ruby 如何更改Pry中对象的输出颜色?

Ruby 如何更改Pry中对象的输出颜色?,ruby,pry,Ruby,Pry,我正在构建一个类似于nil的对象,称为nil_query,是一个名为NilQuery的单例类的实例 我希望这个类在Pry中调用时以与true、false和nil类似的方式显示,这意味着我希望它以自己的特殊颜色显示,而不仅仅是白色: 我的第一个想法(这就是我在上图中得到结果的原因)是将字符串从NilQuery的inspect方法更改为包含颜色格式: class NilQuery def inspect "\e[36;1mnil_query\e[0m" end end 当然,这是

我正在构建一个类似于nil的对象,称为nil_query,是一个名为NilQuery的单例类的实例

我希望这个类在Pry中调用时以与true、false和nil类似的方式显示,这意味着我希望它以自己的特殊颜色显示,而不仅仅是白色:

我的第一个想法(这就是我在上图中得到结果的原因)是将字符串从NilQuery的inspect方法更改为包含颜色格式:

class NilQuery
  def inspect
    "\e[36;1mnil_query\e[0m"
  end
end
当然,这是一个糟糕的想法,因为它改变了所有错误的显示方式,包括定义终端输出的数字字符串。因此,如果我在nil_查询中调用一个随机的未定义方法,错误如下所示:

NoMethodError: undefined method `random_method' for "\e[36;1mnil_query\e[0m":NilQuery
他们有什么好的解决方案吗?我试着研究了一下pretty print,但很难找到关于如何使用它的好文档

TL;DR-如何更改特定对象或值在Pry中显示的颜色和格式?

Pry用于格式化输出的颜色。您可能需要自定义以定义新标记(类似于:float、:integer、:constant等),然后定义的格式/颜色