Ruby on Rails:针对variable.hash_set.inspect的漂亮打印......有没有办法在控制台中打印漂亮的.inpsect?

时间:2011-07-06 13:39:19

标签: ruby-on-rails ruby console

我发现自己在我的功能测试中做了很多put .inpsect,以确保我知道数据是如何格式化的......但是当散列对象中的每个条目之后没有新行时,哈希很难读取。 无论如何,也许是宝石?,漂亮的印刷哈希?

所以它看起来像这样:

{ 
  entry1 => { 
              entrey1.1 => 1,
              entry1.2 => 3
            },
  entry2 => 3
}

代替:{ entry1 => { entrey1.1 => 1, entry1.2 => 3}, entry2 => 3 }

谢谢!

2 个答案:

答案 0 :(得分:27)

你可以使用awesome_print gem。

https://github.com/michaeldv/awesome_print

require 'awesome_print' # if you like to have it in irb by default, add it to your irbrc
>> ap({:a => 1, :b => [1,2,3], :c => :d})
{
    :b => [
        [0] 1,
        [1] 2,
        [2] 3
    ],
    :a => 1,
    :c => :d
}

btw,而不是puts object.inspect,您也可以在打印之前使用在对象中调用inspect的p object。 另一种打印比默认put更好的对象的方法是使用ruby stdlib中的pphttp://ruby-doc.org/stdlib/libdoc/pp/rdoc/index.html

答案 1 :(得分:4)

如果您愿意,可以随时在Hash#inspect文件中重新定义.irbrc,并按照您想要的格式对其进行格式化。这只会影响您的互动环境。另一种方法是将它们表示为YAML,它通常更具可读性。例如:

def y(object)
  puts object.to_yaml
  return
end

通过这种方式,您可以像今天y那样在对象上运行p