Как изменить цвет вывода для объекта в Pry? - PullRequest
0 голосов
/ 06 июня 2018

Я создаю объект, который несколько похож на nil, он называется nil_query и является экземпляром одноэлементного класса с именем NilQuery.

Я бы хотел, чтобы этот класс отображался аналогично true, false и nil при вызове в Pry, что означает, что я хочу, чтобы он отображался в своем собственном особом цвете, а не просто в белом:

enter image description here

Мой первыйМысль (именно так я получил результаты на картинке выше) заключалась в том, чтобы просто изменить строку из метода проверки 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

1 Ответ

0 голосов
/ 06 июня 2018

Pry использует Coderay для форматирования цвета вывода.Возможно, вам потребуется настроить Ruby сканер , чтобы определить новый токен (аналогично: float,: integer,: constant и т. Д.), А затем определить форматирование / цвет для терминала .

...