我发现自己在我的功能测试中做了很多put .inpsect,以确保我知道数据是如何格式化的......但是当散列对象中的每个条目之后没有新行时,哈希很难读取。 无论如何,也许是宝石?,漂亮的印刷哈希?
所以它看起来像这样:
{
entry1 => {
entrey1.1 => 1,
entry1.2 => 3
},
entry2 => 3
}
代替:{ entry1 => { entrey1.1 => 1, entry1.2 => 3}, entry2 => 3 }
?
谢谢!
答案 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中的pp
(http://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
。