volver al archivo
22
MAY
día 22 / 30

Descifrar manifest

Medio
stringsparsingobjects
historia · contexto

Historia

Día 22

El archivo mission.manifest de la Hespérides es tres kilobytes de KEY=VALUE con comentarios, espacios sobrantes y líneas de basura intercaladas. El parser original murió con el sistema; tienes que escribir uno tolerante.

Una línea del manifest dice CLIENTE=Zeew Corp. Otra, CLIENTE=Instituto Marén. Solo una puede ser cierta.

objetivo · spec

Tu misión

Tu misión

Implementa parsearManifest(texto) que convierte un string multilínea en un objeto:

  1. Separa el texto por saltos de línea (\n).
  2. Ignora líneas vacías (tras trim) y líneas que empiezan con #.
  3. Ignora líneas que no contienen =.
  4. Parte en la primera =: lo de antes es la clave (tras trim), lo de después es el valor (tras trim).
  5. Si una clave aparece varias veces, la última gana.
  6. Si la clave queda vacía tras trim, descarta esa línea.

Ejemplo

parsearManifest('A=1\nB=2')            // → { A: '1', B: '2' }
parsearManifest('# nota\nA=1')          // → { A: '1' }
parsearManifest('A=b=c')                 // → { A: 'b=c' }
parsearManifest('')                       // → {}
validación

Casos de prueba

tests/8.casesmostrando 5 de 8
  1. [01]dos entradas
  2. [02]comentario ignorado
  3. [03]= en el valor no rompe
  4. [04]texto vacío
  5. [05]líneas sin = ignoradas
  6. … y 3 casos más, ocultos hasta enviar.