आप YAML में एक भाग निकले स्ट्रिंग स्टोर करने के लिए चाहते हैं, #inspect
का उपयोग करके उसे इससे पहले कि आप YAML में बदलने का:
irb> require 'yaml'
=> true
irb> str = %{This string's a little complicated, but it "does the job" (man, I hate scare quotes)}
=> "This string's a little complicated, but it \"does the job\" (man, I hate scare quotes)"
irb> puts str
This string's a little complicated, but it "does the job" (man, I hate scare quotes)
=> nil
irb> puts str.inspect
"This string's a little complicated, but it \"does the job\" (man, I hate scare quotes)"
=> nil
irb> puts str.to_yaml
--- This string's a little complicated, but it "does the job" (man, I hate scare quotes)
=> nil
irb> puts str.inspect.to_yaml
--- "\"This string's a little complicated, but it \\\"does the job\\\" (man, I hate scare quotes)\""
=> nil
YAML तार बोली नहीं है जब तक कि यह करने के लिए है। यह तार उद्धरण अगर वे चीजों को शामिल करता है, तो यह है कि यह गैर उद्धृत संग्रहीत है कि यह याद होगा - उद्धरण वर्ण आसपास या पीछे या प्रमुख रिक्त स्थान की तरह:
irb> puts (str + " ").to_yaml
--- "This string's a little complicated, but it \"does the job\" (man, I hate scare quotes) "
=> nil
irb> puts %{"#{str}"}.to_yaml
--- "\"This string's a little complicated, but it \"does the job\" (man, I hate scare quotes)\""
=> nil
irb> puts (" " + str).to_yaml
--- " This string's a little complicated, but it \"does the job\" (man, I hate scare quotes)"
=> nil
हालांकि, एक YAML उपभोक्ता के रूप में, स्ट्रिंग उद्धृत किया गया है कि क्या कोई फर्क नहीं करना चाहिए आप को। आपको कभी भी वाईएएमएल पाठ को पार्स नहीं करना चाहिए - इसे पुस्तकालयों में छोड़ दें। यदि आप को की आवश्यकता है तो स्ट्रिंग को YAML फ़ाइल में उद्धृत किया जाना चाहिए, जो मुझे खराब करता है।
इससे कोई फर्क नहीं पड़ता कि आपके तार है उन में '& की, YAML स्ट्रिंग सुरक्षित करेगा:
irb> test = "I'm a b&d string"
=> "I'm a b&d string"
irb> YAML::load(YAML::dump(test))
=> "I'm a b&d string"
irb> YAML::load(YAML::dump(test)) == test
=> true
मैं डॉक्स से समझने के रूप में, कि एक ही रास्ता मैं जैसे पात्रों और और रख सकते है: (http://www.yaml.org/YAML_for_ruby.html#single-quoted_strings)। मैं इस yaml फ़ाइल में यूआरएल संग्रहीत कर रहा हूं कि मैं बाद में रुबी में वापस खींचने में सक्षम होना चाहता हूं। – neezer