irbで新しい配列/ハッシュを作成すると、構造を示すニース形式が出力されます。
["value1", "value2", "value3"]
{"key1" => "value1"}
...しかし、puts
を使用して変数を出力しようとすると、それらが折りたたまれます。
value1
value2
value3
key1
value1
puts
は私が望むものに適したコマンドではないことを収集しますが、それは何ですか? irbの変数を2番目の形式ではなく最初の形式で表示できるようにしたい。
inspect
メソッドを使用できます:
a=["value1", "value2", "value3"]
puts a.inspect
または、さらに良いことに、pp(pretty print)libを使用します。
require 'pp'
a=["value1", "value2", "value3"]
pp a
もう1つできることは、入力をYamlに変換するy
メソッドを使用することです。それはかなり素敵な出力を生成します...
>> data = { 'dog' => 'Flemeale', 'horse' => 'Gregoire', 'cow' => 'Fleante' }
=> {"cow"=>"Fleante", "horse"=>"Gregoire", "dog"=>"Flemeale"}
>> y data
---
cow: Fleante
horse: Gregoire
dog: Flemeale
きれいな印刷はうまく機能しますが、 Awesome_Print gemはさらに優れています!あなたはしなければならない require awesome_print
しかし、ネストされたハッシュと配列を美しく処理し、ターミナルで「p」の代わりに「ap」を使用して出力を出力します。
これを〜/ .irbrcに含めて、オブジェクトを表示するためのデフォルトの方法として使用することもできます。
require "awesome_print"
AwesomePrint.irb!
.inspectを試してください
>> a = ["value1", "value2", "value3"]
=> ["value1", "value2", "value3"]
>> a.inspect
=> "[\"value1\", \"value2\", \"value3\"]"
>> a = {"key1" => "value1"}
=> {"key1"=>"value1"}
>> a.inspect
=> "{\"key1\"=>\"value1\"}"
p()メソッドを使用して印刷することもできます。
>> p a
{"key1"=>"value1"}
このための私の個人的なツールは、 'Pretty Print'とpp
メソッドです
require 'pp' # <- 'Pretty Print' Included in Ruby standard library
pp({ :hello => :world, :this => ['is', 'an', 'array'] })
=> {:hello=>:world, :this=>["is", "an", "array"]}