From 3e2ee59531924c3dc5c5119d7d649d96d3484a42 Mon Sep 17 00:00:00 2001 From: dvic Date: Mon, 11 Aug 2025 09:12:49 +0200 Subject: [PATCH] Fix multiline strings with colons being unnecessarily quoted Removes unnecessary quoting of strings containing colons when they are part of multiline YAML blocks by directly using the line content instead of passing it through the value() function. Fixes #4 --- lib/github_workflows_generator/yml_encoder.ex | 2 +- test/github_workflows_generator/yml_encoder_test.exs | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/github_workflows_generator/yml_encoder.ex b/lib/github_workflows_generator/yml_encoder.ex index 7a19d93..df0b563 100644 --- a/lib/github_workflows_generator/yml_encoder.ex +++ b/lib/github_workflows_generator/yml_encoder.ex @@ -32,7 +32,7 @@ defmodule GithubWorkflowsGenerator.YmlEncoder do values = data |> String.split("\n", trim: true) - |> Enum.map_join("\n", &(String.duplicate(" ", level) <> value(&1))) + |> Enum.map_join("\n", &(String.duplicate(" ", level) <> &1)) "|\n#{values}" diff --git a/test/github_workflows_generator/yml_encoder_test.exs b/test/github_workflows_generator/yml_encoder_test.exs index 71f1db9..eea3fec 100644 --- a/test/github_workflows_generator/yml_encoder_test.exs +++ b/test/github_workflows_generator/yml_encoder_test.exs @@ -29,6 +29,14 @@ defmodule GithubWorkflowsGenerator.YmlEncoderTest do """ end + test "encodes a multiline string with colons correctly" do + assert YmlEncoder.encode(example: "this: is valid\nanother: line") == """ + example: | + this: is valid + another: line + """ + end + test "encodes a complex data structure" do assert YmlEncoder.encode( on: [