immosquare-yaml 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3a23201af8649660878ead589649938df652d4c3b4eccd8b5d2463643e7d0b79
4
- data.tar.gz: 4ee0383267d4a9f5e718d0189395f043a67d663abb43409f5b1f35782e76768e
3
+ metadata.gz: b52683e890b1d956eae3105cea9e41abf49ddd14d549fb76a4490f8f851d0855
4
+ data.tar.gz: fb4b1fe155dd11b4a13c7b4dcd88e91839a1b9d9af8e5aeb2205ffa86c925f6c
5
5
  SHA512:
6
- metadata.gz: c349896c32e18ce5fe66b8c00cc33f7e55828ddc48a4dd4e69977ea1cad46940c06186ac043574b514ed8d36357233f7442a4749c2215bca7e8c80878883a4c7
7
- data.tar.gz: 2c0a872feb19356fca0895f00c1bc49eeba7bb6a40dab31e9710fd3a6b062d4e35b2cb0bee7b8953cc86bc0dcdab68bd77feb7eba9435b514d11a62ff030c5fe
6
+ metadata.gz: eee507c91cb95ac3ff5e87f15570f664622c0be05f449bad60823687e3f7cd71e54b9aef52a74b6799e04a7fdc8a4b855e3f217cbc6fef20861898c957433374
7
+ data.tar.gz: 7f05834fc1b5e22c25d021b7eed1f6b77e3575a6a86d3c2794cf2c1b8bc0e193443b50c770acf0af5f5deb1dbc9001574242272d0b5065476dd42978daca56a4
@@ -1,3 +1,3 @@
1
1
  module ImmosquareYaml
2
- VERSION = "1.0.0".freeze
2
+ VERSION = "1.0.1".freeze
3
3
  end
@@ -314,16 +314,17 @@ module ImmosquareYaml
314
314
 
315
315
  ##============================================================##
316
316
  ## Choix du style de quoting :
317
- ## - single-quoted par défaut (plus léger, pas d'escapes)
318
- ## - double-quoted seulement si la valeur contient une
319
- ## apostrophe ou un caractère qui nécessite un escape
320
- ## (\, tab). Cela minimise les diffs git sur les fichiers
321
- ## existants et améliore la lisibilité (HTML notamment).
317
+ ## - double-quoted par défaut (cohérent avec la règle Ruby
318
+ ## globale "double quotes obligatoires")
319
+ ## - single-quoted seulement si la valeur contient un " ou
320
+ ## un \ (qui devraient être échappés en double-quoted),
321
+ ## sauf si la valeur contient aussi un \t qui ne peut être
322
+ ## représenté qu'en double-quoted.
322
323
  ##============================================================##
323
- if value.include?(SIMPLE_QUOTE) || value.include?("\\") || value.include?("\t")
324
- yaml_double_quote(value)
324
+ if (value.include?(DOUBLE_QUOTE) || value.include?("\\")) && !value.include?("\t")
325
+ yaml_single_quote(value)
325
326
  else
326
- "#{SIMPLE_QUOTE}#{value}#{SIMPLE_QUOTE}"
327
+ yaml_double_quote(value)
327
328
  end
328
329
  end
329
330
 
@@ -337,6 +338,16 @@ module ImmosquareYaml
337
338
  "\"#{escaped}\""
338
339
  end
339
340
 
341
+ ##============================================================##
342
+ ## Échappe une string pour la sérialiser en YAML single-quoted.
343
+ ## En single-quoted, le seul caractère à échapper est l'apostrophe
344
+ ## elle-même, doublée. Ni \, ni " ne sont interprétés.
345
+ ##============================================================##
346
+ def yaml_single_quote(value)
347
+ escaped = value.gsub(SIMPLE_QUOTE, DOUBLE_SIMPLE_QUOTE)
348
+ "#{SIMPLE_QUOTE}#{escaped}#{SIMPLE_QUOTE}"
349
+ end
350
+
340
351
  ##============================================================##
341
352
  ## Retire récursivement les paires de guillemets englobants.
342
353
  ## Sert pour les fichiers historiques produits par v0.1.28
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: immosquare-yaml
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - immosquare