Gemäß der YAML-Dokumentation ist es möglich, eine an die .to_yaml
Methode zu übergeben.Wie erhalten Sie die Formatierungsoptionen für die Methode to_yaml, die mit Ruby 1.9.1 funktioniert?
Derzeit, wenn ich die Optionen wie in der Dokumentation vorgeschlagen übergeben, es funktioniert nicht, wird der Hash ignoriert.
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"
Nun, vorbei an ein paar Optionen:
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"
Wie Sie sehen können, vorbei die Optionen nicht funktionieren. Nur die Standardwerte:
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}
Ist dies ein bekannter Fehler? oder Es funktioniert derzeit für jeden, der Ruby 1.9.1 verwendet?
Ich bekomme das gleiche Verhalten wie Sie sehen. Es sieht so aus, als ob das vorher ohne Auflösung gefragt worden wäre: http://stackoverflow.com/questions/1054730/is-it-possible-to-specify-formatting-options-for-toyaml-in-ruby –
Ja, darin Fall sie 1.8.7 verwenden, habe ich mich nur gefragt, ob es für 1.9.1 funktioniert, es scheint ein Problem ohne eine knappe Antwort zu sein. – jpemberthy
Ich würde gerne die Antwort auf dieses eine wissen. Ich habe vor langer Zeit aufgegeben und schrieb meine eigene "sort the yaml" -Funktion (für 1.8.7). –