2009-11-13 12 views
5

Ich bin relativ neu in Ruby und bin IRB konfigurieren. Ich mag schönen Druck (erfordern 'pp'), aber es scheint ein Aufwand, immer pp für es zu tippen, es ziemlich zu drucken. Was ich tun möchte, ist, es standardmäßig als Druckausgabe zu gestalten. Wenn ich also eine Variable habe, sagen wir "myvar" und myVar eingeben, ruft sie automatisch pretty_inspect statt der regulären inspect auf. Wo fange ich an? Idealerweise könnte ich meiner irbrc-Datei eine Methode hinzufügen, die automatisch aufgerufen wird. Irgendwelche Ideen?Ruby Konfigurieren Sie IRB standardmäßig auf Pretty_Inspect

Danke!

Antwort

9

Recht Druck Objekte standardmäßig in irb ist genau das, was hirb wurde gemacht zu tun. Theseposts erklären, wie Hirb so ziemlich alles in eine ASCII-Tabelle konvertieren kann. Obwohl hirb pro Klasse werden soll konfiguriert, können Sie alle Objekte als Tabellen angezeigt haben:

# put this in ~/.irbrc 
require 'rubygems' 
require 'hirb' 
Hirb.enable :output=>{'Object'=>{:class=>:auto_table, :ancestor=>true}} 

# in irb 
>> %w{three blind mice} 
+-------+ 
| value | 
+-------+ 
| three | 
| blind | 
| mice | 
+-------+ 
3 rows in set 

>> 1..5 
+-------+ 
| value | 
+-------+ 
| 1  | 
| 2  | 
| 3  | 
| 4  | 
| 5  | 
+-------+ 
5 rows in set 

>> {:a=>1, :b=>2} 
+---+---+ 
| 0 | 1 | 
+---+---+ 
| a | 1 | 
| b | 2 | 
+---+---+ 
2 rows in set 

This related overflow solution auch ein Beispiel für hirb in Aktion hat.

1

Wenn irb startet, liest es .irbrc aus Ihrem $ HOME-Verzeichnis. Wenn Sie diese Datei bearbeiten (oder erstellen) und fügen Sie

hinzu. Sie wird jedes Mal geladen, wenn Sie irb starten.

Auschecken this addition zu pretty_print Methodenlisten auch. Werfen Sie, dass in Ihrem .irbrc und Sie tun können:

>> 5.pm 
         %(arg1)   Fixnum 
         &(arg1)   Fixnum 
         *(arg1)   Fixnum 
        **(arg1)   Fixnum 
         +(arg1)   Fixnum 
        [email protected]()    Fixnum(Numeric) 
         -(arg1)   Fixnum 
        [email protected]()    Fixnum 
         /(arg1)   Fixnum 
        <<(arg1)   Fixnum 
        >>(arg1)   Fixnum 
        [](arg1)   Fixnum 
         ^(arg1)   Fixnum 
        abs()    Fixnum 
        ago(arg1, ...) Fixnum(ActiveSupport::CoreExtensions::Numeric::Time) 
       between?(arg1, arg2) Fixnum(Comparable) 
        byte()    Fixnum(ActiveSupport::CoreExtensions::Numeric::Bytes) 
        bytes()    Fixnum(ActiveSupport::CoreExtensions::Numeric::Bytes