Wenn ich ein neues Array / einen neuen Hash in irb erstelle , druckt es ein schönes Format aus, um die Struktur zu zeigen, z.
["value1", "value2", "value3"]
{"key1" => "value1"}
... aber wenn ich versuche, meine Variablen mit auszudrucken, werden puts
sie reduziert:
value1
value2
value3
key1
value1
Ich nehme an, das puts
ist nicht der richtige Befehl für das, was ich will, aber was ist das? Ich möchte meine Variablen in irb im ersten Format anzeigen können , nicht im zweiten.
pp
kauft Ihnen Einrückung, wenn das Objekt zu groß ist.Sie können auch die
y
Methode verwenden, mit der Eingaben in Yaml konvertiert werden. Das erzeugt eine ziemlich schöne Ausgabe ...>> data = { 'dog' => 'Flemeale', 'horse' => 'Gregoire', 'cow' => 'Fleante' } => {"cow"=>"Fleante", "horse"=>"Gregoire", "dog"=>"Flemeale"} >> y data --- cow: Fleante horse: Gregoire dog: Flemeale
quelle
y
Methode verwendenYAML.dump
. Per [ github.com/tenderlove/psych/issues/50] :y
verschmutzter Kernel und per [ ruby-forum.com/topic/2332227] ,Kernel.y
ist privat.Der hübsche Druck funktioniert gut, aber das Juwel Awesome_Print ist noch besser! Sie müssen,
require awesome_print
aber es behandelt verschachtelte Hashes und Arrays wunderschön und färbt sie im Terminal mit 'ap' anstelle von 'p', um die Ausgabe zu platzieren.Sie können es auch in Ihr ~ / .irbrc aufnehmen, um dies als Standardmethode für die Anzeige von Objekten festzulegen:
require "awesome_print" AwesomePrint.irb!
quelle
Versuchen Sie es mit .inspect
>> a = ["value1", "value2", "value3"] => ["value1", "value2", "value3"] >> a.inspect => "[\"value1\", \"value2\", \"value3\"]" >> a = {"key1" => "value1"} => {"key1"=>"value1"} >> a.inspect => "{\"key1\"=>\"value1\"}"
Sie können sie auch mit der p () -Methode drucken:
>> p a {"key1"=>"value1"}
quelle
Mein persönliches Werkzeug der Wahl ist 'Pretty Print' und die
pp
Methoderequire 'pp' # <- 'Pretty Print' Included in ruby standard library pp({ :hello => :world, :this => ['is', 'an', 'array'] }) => {:hello=>:world, :this=>["is", "an", "array"]}
quelle