Почему Ruby IRB print_print не правильно?

С помощью Rails 4.0.4 а также Ruby 2.1.1и внутри контроллера модели я хочу использовать pp проверить объект. У меня есть звонок debugger приостановить исполнение и осмотреться. Тем не мение, pp кажется, обрезает результат и не позволяет им отображаться в нескольких строках:

>pp ShopOrder

#<Shoporder id: 64, order_id: "142949823232-3232353652342", shop_id: 1, order_
status: "Completed", order_tests_queued: "2014-04-02 18:19:36", shipped_time: 
nil, shipping_address_name: "John Doe", total: 43.9, created_time: "2014-04-02
03:04:20", raw: "{\"order_id\":\"142949823232-3232353652342\",\"order_sta...">

 ( ^^ I did not truncated this for the question, it just ends this way ^^ )

Я привык к pp обычно форматируя это красиво и отображая его в несколько строк, больше похоже на то, что происходит при использовании y ShopOrder чтобы получить красиво отформатированный to_yaml выход:

--- !ruby/object:Shoporder
attributes:
  id: 64
  order_id: 142949823232-3232353652342
  shop_id: 1
  order_status: Completed
  order_tests_queued: 2014-04-02 18:19:36.498044000 Z
  shipped_time: 
  shipping_address_name: John Doe
  total: 43.9
  created_time: 2014-04-02 03:04:20.000000000 Z
  ... (output continues correctly but has been truncated for this example )

Эхо включено как irb_context.echo возвращается true

y а также to_yaml все в порядке, но иногда я также хотел бы иметь возможность использовать pp

Почему это не работает, как ожидалось?

2 ответа

Решение

Вместо этого используйте Awesome Print

Это (странно) предназначенное поведение для больших объектов.

Не использовать pp от pretty_print использование ap от awesome_print

Если память не изменяет pp опирается на pretty_print метод его вывода. Возможно, что-то определяет это в ваших моделях или переопределяет и обрезает строку, возвращаемую super,

Другие вопросы по тегам