2016-11-15 2 views
0

私はこのようなYAMLを取ろうとしており、TLDをトップレベルにして新しいYAMLを作成しようとしています:ハッシュからYAMLファイルを作成しようとすると、私の鍵は引用符で終わる

--- 
- 
TLD: .abogado 
Registry: 
TLD Type: nTLD 
- 
TLD: .ac 
Registry: 
TLD Type: ccTLD 

TLDをハッシュキーとして、残りをそのキーの値としてループします。

cleaned_chart = {} 
rc.each do |item| 
    tld_key = item['TLD'] 
    cleaned_chart[tld_key] = item 
end 

それから私は、ファイルにハッシュをダンプ:

File.open("db/data/open_srs/tld_reference_chart.yml","w") do |file| 
    file.write cleaned_chart.to_yaml 
end 

しかし、私は、キーの周りの相場が今そこにある理由として混乱しています!

".abogado": 
    tld: ".abogado" 
    tld_type: nTLD 
".ac": 
    tld: ".ac" 
    tld_type: ccTLD 

私は見積もりを削除することはできません!文字列の場合は、記号に変換した場合と同じように自動的に配置されます。キーの前に:(

私はグーグルだが見つからないこれについては何も。

答えて

2

YAMLのシリアライザの多くは、それらの中に不規則な文字でキーをレンダリングする場合は特に、注意の側に誤る。ドット、ダッシュ、スペース、これらは特別な処理を必要とするものです。

何もありませんその出力に間違っている、実際には、おそらく最も信頼性の高いエスケープされたその最高のバージョンですので、他のYAML読者が正しく処理します。

私はそれらの引用符を削除しようとしないでください。何かがある場合は、ドットを避けるためにキーの格納方法を切り替えることができます。

+0

ああ、本当に面白いです、説明をありがとう! – MiaZ

関連する問題