2009-11-13 3 views
5

저는 루비를 처음 사용하고 IRB를 구성하고 있습니다. 나는 예쁜 인쇄물 ('pp'필요)을 좋아하지만, 꽤 인쇄하기 위해 항상 pp를 입력하는 번거 로움이 있습니다. 내가 뭘하고 싶은지, 기본적으로 꽤 인쇄되도록, var, 말하자면, 'myvar', 그리고 입력 myvar, 자동으로 pretty_inspect 정기적 인 검사 대신 호출합니다. 어디에서 시작할 수 있습니까? 이상적으로는 자동으로 호출되는 .irbrc 파일에 메서드를 추가 할 수 있습니다. 어떤 아이디어?루비 기본적으로 Pretty_Inspect로 IRB 구성

감사합니다.

답변

9

예쁜 인쇄 객체를 IRB에서 기본적으로하는 것은 hirb이 어떻게 만들어 정확히 것입니다. Theseposts은 hirb가 거의 모든 것을 ASCII 테이블로 변환하는 방법을 설명합니다. hirb는 클래스별로 구성 할 의미가 있지만, 당신은 테이블로 표시되는 모든 오브젝트를 할 수 :

# 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 또한 행동 hirb의 예를 가지고있다.

1

irb가 시작되면 $ HOME 디렉토리에서 .irbrc를 읽습니다. 해당 파일을 편집 (또는 생성)하고 추가 할 경우

require 'pp' 

irb를 시작할 때마다로드됩니다.

pretty_print 메소드 목록에도 this addition을 확인하십시오. 당신의 .irbrc에 그것을 던져 그리고 당신이 할 수 있습니다

>> 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