2009-11-13 9 views
5

मैं रूबी के लिए बिल्कुल नया हूं, और आईआरबी को कॉन्फ़िगर कर रहा हूं। मुझे सुंदर प्रिंट पसंद है ('पीपी' की आवश्यकता है), लेकिन इसे हमेशा प्रिंट करने के लिए पीपी टाइप करने में परेशानी होती है। मैं जो करना चाहता हूं वह डिफ़ॉल्ट रूप से इसे बहुत प्रिंट करता है, इसलिए यदि मेरे पास एक var है, तो 'myvar' कहें, और myvar टाइप करें, यह स्वचालित रूप से नियमित निरीक्षण के बजाय pretty_inspect को कॉल करता है। मैं कहां से शुरू करूं? आदर्श रूप से, मैं अपनी .irbrc फ़ाइल में एक विधि जोड़ सकता हूं जिसे स्वचालित रूप से बुलाया जाता है। कोई विचार?रूबी डिफ़ॉल्ट द्वारा आईआरबी को Pretty_Inspect पर कॉन्फ़िगर करें

धन्यवाद!

उत्तर

9

सुंदर मुद्रण वस्तुओं आईआरबी में डिफ़ॉल्ट रूप से वास्तव में क्या hirb करने के लिए बनाया गया था। Theseposts बताते हैं कि कैसे हिरब एएससीआई टेबल में बहुत कुछ भी परिवर्तित कर सकता है। हालांकि 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' 

प्रत्येक बार जब आप आईआरबी शुरू करेंगे तो इसे लोड किया जाएगा।

सुंदर_प्रिंट विधि सूचियों में भी 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 

संबंधित मुद्दे