如何在运行脚本中复制 rails 控制台输出样式?

How replicate rails console output style in runner script?

当 运行 User.first 在 rails 控制台中时,我会得到一个漂亮的输出,类似于:

我假设这是由 pry 处理的。使用跑步者时如何获得相同的输出样式?考虑一个文件 tinker.rb

u = User.first
puts u

和运行它喜欢:rails r './tinker.rb。虽然它会输出一些东西,但它不像在控制台中那样完美:

#<User:0x00007fc6518acec8>

我怎样才能完全一样?

此格式是 PrettyPrint 模块的结果 - PP:

u = User.first
pp u #=> Which is basically a shortcut for: PP.pp(u)

但是请注意,默认情况下这不会生成彩色输出。 Pry 还通过另一个 gem - coderay 处理格式化字符串,它负责 ruby 语法高亮。如果要彩色打印,则:

u = User.first
Pry::ColorPrinter.pp(u)