2010-01-28 15 views
6

वाईएएमएल दस्तावेज के अनुसार hash of options.to_yaml विधि को पास करना संभव है।ruby ​​1.9.1 पर काम करने के लिए to_yaml विधि के लिए स्वरूपण विकल्प कैसे प्राप्त करें?

वर्तमान में जब मैं दस्तावेज द्वारा सुझाए गए विकल्पों को पास करता हूं तो यह काम नहीं कर रहा है, हैश को अनदेखा किया जा रहा है।

irb(main):001:0> require 'yaml' 
=> true 
irb(main):002:0> user = { "1" => { "name" => "john", "age" => 44 } } 
user.to_yaml 
=> "--- \n\"1\": \n name: john\n age: 44\n" 

अब, कुछ विकल्प गुजर:

irb(main):014:0> user.to_yaml(:Indent => 4, :UseHeader => true, :UseVersion => true) 
=> "--- \n\"1\": \n name: john\n age: 44\n" 
irb(main):015:0> user.to_yaml(:Separator => "\n") 
=> "--- \n\"1\": \n name: john\n age: 44\n" 
irb(main):016:0> user.to_yaml(:separator => "\n") 
=> "--- \n\"1\": \n name: john\n age: 44\n" 
irb(main):017:0> RUBY_VERSION 
=> "1.9.1" 

आप देख सकते हैं, गुजर विकल्प काम नहीं करते। केवल डिफ़ॉल्ट:

YAML::DEFAULTS 
=> {:Indent=>2, :UseHeader=>false, :UseVersion=>false, :Version=>"1.0", :SortKeys=>false, :AnchorFormat=>"id%03d", :ExplicitTypes=>false, :WidthType=>"absolute", :BestWidth=>80, :UseBlock=>false, :UseFold=>false, :Encoding=>:None} 

क्या यह ज्ञात बग है? या यह वर्तमान में रूबी 1.9.1 का उपयोग कर किसी के लिए काम कर रहा है?

+0

मुझे वही व्यवहार मिलता है जैसा आप देख रहे हैं। ऐसा लगता है कि बिना किसी संकल्प के पहले यह पूछा गया है: http://stackoverflow.com/questions/1054730/is-it-possible-to-specify-formatting-options-for-toyaml-in-ruby –

+0

हां, उसमें अगर वे 1.8.7 का उपयोग कर रहे थे, तो मैं सोच रहा था कि यह 1.9.1 के लिए काम करता है, यह एक संक्षिप्त उत्तर के बिना एक समस्या प्रतीत होता है। – jpemberthy

+0

मुझे इस का जवाब जानना अच्छा लगेगा। मैंने बहुत पहले छोड़ दिया और अपना खुद का "सॉर्ट द यम" फ़ंक्शन (1.8.7 के लिए) लिखा था। –

उत्तर

2

मैंने इतने दूर के अतीत में इसके लिए सी स्रोत में अपेक्षाकृत गहरा खोला है। मैं केवल टिप्पणियों में जो कहा गया है उसे सत्यापित करने के लिए पोस्ट कर रहा हूं।

मूल रूप से, यह नहीं कर सकता। कभी भी YAML लेखक को मारने से पहले, सिक विकल्प प्रक्रिया में कहीं खो जाते हैं।

आपके पास सबसे अच्छा to_yaml_style है। कभी कभी।

यह 1.8 और 1.9 के लिए समान है।

+0

ठीक है, ठीक है, मैंने इसे प्रारूपित करने के लिए एक छोटा मॉड्यूल लिखना समाप्त कर दिया है, जैसा कि इष्टतम नहीं है क्योंकि इसे 'to_yaml' विधि का उपयोग करना चाहिए ... लेकिन कम से कम यह काम करता है। धन्यवाद। – jpemberthy

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

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