当我在irb中创建一个新的数组/哈希时,它会打印出一种不错的格式来显示结构,例如。
["value1", "value2", "value3"]
{"key1" => "value1"}
...但是当我尝试使用来打印变量时puts
,我将它们折叠了:
value1
value2
value3
key1
value1
我收集到puts
的不是我想要的正确命令,而是什么?我希望能够以第一种格式而不是第二种格式查看irb中的变量。
Answers:
您可以做的另一件事是使用y
将输入转换为Yaml的方法。产生非常好的输出...
>> data = { 'dog' => 'Flemeale', 'horse' => 'Gregoire', 'cow' => 'Fleante' }
=> {"cow"=>"Fleante", "horse"=>"Gregoire", "dog"=>"Flemeale"}
>> y data
---
cow: Fleante
horse: Gregoire
dog: Flemeale
y
应使用代替方法YAML.dump
。每[ github.com/tenderlove/psych/issues/50] :y
污染内核,每[ ruby-forum.com/topic/2332227] ,Kernel.y
是私人的。
漂亮的印刷品效果很好,但Awesome_Print宝石甚至更好!您必须这样做, require awesome_print
但是它可以精美地处理嵌套的哈希和数组,并在终端中使用“ ap”(而不是“ p”)为输出着色,从而为它们着色。
您也可以将它包含在〜/ .irbrc中,以使其成为显示对象的默认方法:
require "awesome_print"
AwesomePrint.irb!
pp
如果对象太大,可以购买缩进。