YamlTidy
YamlTidy range un fichier YAML : trie les clés des mappings par ordre
ALPHABÉTIQUE, RÉCURSIVEMENT À TOUS LES NIVEAUX (enfants, petits-enfants…),
Y COMPRIS les clés À L'INTÉRIEUR d'un item de séquence qui est un mapping
(ex. users: - name/groups → groups avant name). PRÉSERVE :
- les commentaires AU-DESSUS d'une clé (déplacés avec elle au tri) ;
- les commentaires INLINE ;
- l'ORDRE des ÉLÉMENTS de séquence — seules les CLÉS sont triées.
Optionnellement, épingle une 1ʳᵉ ligne de commentaire (
header), idempotent.
Approche ligne-à-ligne : le YAML de la stdlib perd les commentaires, alors
qu'ils portent souvent l'essentiel de l'info pour un humain. Hypothèse :
indentation par espaces. Les scalaires MULTI-LIGNES (blocs |/> et
chaînes entre apostrophes ou guillemets sur plusieurs lignes) sont recopiés
TELS QUELS : leurs lignes sont du texte, jamais des clés à trier.
YamlTidy.tidy(File.read("conf.yml")) # tri seul
YamlTidy.tidy(content, header: "monserveur.example") # + `# monserveur.example` en tête
Constants
Instance methods
Genre de scalaire multi-ligne OUVERT par la ligne : :block (valeur |
ou >, indicateurs -/+/chiffre, commentaire possible), '\'' ou '"'
(chaîne entre apostrophes/guillemets non refermée sur la ligne) ; nil sinon.