2011-06-28 11 views

उत्तर

25

गहरे लाल रंग का मानक पुस्तकालय पीपी (के लिए "बहुत प्रिंट" कम) है, जो बहुत मानक की तुलना में बेहतर संरचनाओं स्वरूपों में शामिल है का निरीक्षण:

http://www.ruby-doc.org/stdlib/libdoc/pp/rdoc/index.html

आप की जरूरत है require 'pp' अपनी स्रोत फ़ाइल के शीर्ष पर इसका उपयोग करने से पहले, और उसके बाद को अपने कोड में pp obj के साथ प्रतिस्थापित करें।

मुझे यह विशेष रूप से हैश और सरणी के लिए वास्तव में उपयोगी लगता है!

+1

पीपी कर्नेल मॉड्यूल में pretty_inspect() भी जोड़ देगा, ताकि आप बस इसके साथ निरीक्षण() को प्रतिस्थापित कर सकें। – tjbp

5

'पीपी' समाधान के अलावा, यामल एक समाधान हो सकता है।

प्रयास करें:

require 'yaml' 
puts [1,2,3=>'three'].to_yaml 

आप मिल:

--- 
- 1 
- 2 
- 3: three 

और एक पूरी अलग दृष्टिकोण: यदि आप एक विशिष्ट वर्ग

के साथ एक का निरीक्षण-समस्या है, तो लिखें अपनी खुद की निरीक्षण-कोड उदाहरण:

class MyTest 
    def initialize() 
    @created = Time.now 
    end 
    def inspect() 
    "Hi, I'm the objected created at #{@created}. That's #{Time.now - @created} seconds ago" 
    end 
end 

x = MyTest.new 
sleep 5 
puts x.inspect 

आप मिल

Hi, I'm the objected created at 2011-06-28 12:48:38 +0100. That's 5.0 seconds ago 
+1

मुझे यह समाधान सबसे अच्छा लगता है। रेल कंसोल का उपयोग करते समय मुझे 'yaml' की आवश्यकता भी नहीं है। पोस्ट करने का शुक्रिया –

0

यह काम करते हैं और दिखेगा महान अपने gemfile में :)

:

group :development do 
    gem 'table_print', '~> 1.5.3' 
end 
अपने ध्यान में रखते हुए

:

<pre> 
<%= TablePrint::Printer.new(@users, []).table_print %> 
</pre> 
1

तरह @tjbp ने कहा, बस निरीक्षण के बजाय pretty_inspect() का उपयोग करें()

यह आपको अच्छी लाइन ब्रेक और इंडेंटेशन

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