Есть ли awesome_print, подобный gem, для минимального результата

#ruby-on-rails #ruby #bigdecimal #minitest

#ruby-on-rails #ruby #bigdecimal #минимальный тест

Вопрос:

Я использую awesome_print , потому что хочу видеть Bigdecimal числа, подобные 0.5 , вместо <BigDecimal:7fbfdafa54c8,'0.5E0',9(18)> .

И я также хочу использовать ту же функцию для Minitest результата.

Есть ли драгоценный камень для этого?

Я пробовал minitest-reporters, но, по-видимому, этот драгоценный камень не меняет Bigdecimal внешний вид.

Комментарии:

1. в консоли rails?

2. Когда я запускаю тест с помощью bundle exec rake test .

Ответ №1:

Переопределить inspect вкл BigDecimal :

 class BigDecimal
  def inspect
    self.ai
  end
end
  

Для этого используется Kernel#ai из awesome print (который, кстати, принимает, принимает удобный html: true аргумент)

Причина, по которой я знаю, inspect что Minitest вызывается, заключается в том, что то, что вы видите ( <BigDecimal:7fbfdafa54c8,'0.5E0',9(18)> ), совпадает с тем, что вы увидели бы, если бы запустили BigDecimal.new(num).inspect

Комментарии:

1. Где я могу переопределить метод, не затрагивая основной код проекта? Добавив test_helper.rb , я только что получил ArgumentError .

2. вы правы, мой код был неправильным. Смотрите обновленный ответ. Переопределить inspect , не to_s