2012-03-18 12 views
24

रूबी 1.9.3 वाईएएमएल के लिए Psych का उपयोग करने के लिए डिफ़ॉल्ट। जबकि the ruby-doc documentation for itपूरी तरह से की कमी है, मैं दस्तावेज का एक बाहरी टुकड़ा ढूंढने में सक्षम था जिसने संकेत दिया कि indentation विकल्प समर्थित है। यह परीक्षण में पैदा हुआ था:साइको to_yaml विकल्पों के लिए प्रलेखन?

irb(main):001:0> RUBY_VERSION 
#=> "1.9.3" 
irb(main):002:0> require 'yaml' 
#=> true 
irb(main):003:0> [[[1]]].to_yaml 
#=> "---\n- - - 1\n" 
irb(main):009:0> [[[1]]].to_yaml indentation:9 
#=> "---\n-  -  - 1\n" 

संभावित रूप से अधिक विकल्प समर्थित हैं। विशेष रूप से, मैं जानना चाहता हूं कि लाइन रैप चौड़ाई को कैसे बदलें या इसे पूरी तरह निष्क्रिय करें।

विकल्प क्या उपलब्ध हैं?

+0

: ऐसा लगता है वहाँ बहुत कुछ विकल्प अभी अभी भी कर रहे हैं, इसलिए थोड़ा प्रलेखन । –

उत्तर

36

ruby-1.9.3-p125/ext/psych/emitter.c की हिम्मत में दीप मैं तीन विकल्प मिल गया:

  • indentation - पसंदीदा लाइन चौड़ाई सेट करें - स्तर कम से कम 10 और अधिक से अधिक 1.
  • line_width होना चाहिए।
  • canonical - आउटपुट शैली को कैनोनिकल, या नहीं (सत्य/गलत) पर सेट करें।

और वे काम करते हैं!

+1

तो, ऐसा लगता है कि आप लाइन रैप को अक्षम नहीं कर सकते हैं? मैंने 'line_width: 0' और' nil' के साथ प्रयास किया जिसका कोई प्रभाव नहीं पड़ा। 'सत्य' एक त्रुटि देता है। – sawa

+0

@sawa आप 'line_width: 999' या कुछ अन्य पर्याप्त बड़ी संख्या चाहते हैं। – Phrogz

+0

ऐसा लगता है कि सिक विकल्प भी काम नहीं करते हैं। तो साइको के लिए ये केवल 1.9.3 – sashaegorov

19

आप निष्क्रिय करने के लिए लाइन रैप चाहते हैं, तो इस विकल्प का उपयोग: 2.2.0, एक छोटी अद्यतन के स्रोत को देखने के बाद

line_width: -1 
संबंधित मुद्दे