Почему 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
,