【问题标题】:How do you change the color of the output for an object in Pry?如何更改 Pry 中对象的输出颜色?
【发布时间】: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 中显示的颜色和格式?

【问题讨论】:

    标签: ruby pry


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-10-24
      • 1970-01-01
      • 2018-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 2015-01-25
      相关资源
      最近更新 更多