Sitelet https://github.com/VirtusLab/scala-yaml/commit/be51beeef7fc7b10ae387c47bc25237a00dd1cb6
Skip to content

Commit be51bee

Browse files
committed
Fix encoding of redundant spaces
1 parent 502e2d9 commit be51bee

6 files changed

Lines changed: 67 additions & 104 deletions

File tree

‎core/shared/src/main/scala/org/virtuslab/yaml/internal/dump/present/PresenterImpl.scala‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ object PresenterImpl extends Presenter {
2222
head match {
2323
case s: Scalar =>
2424
insertSequencePadding()
25+
if (!sb.isEmpty) sb.append(' ')
2526
serializeScalar(s)
2627
sb.append(newline)
2728
tail
@@ -49,7 +50,7 @@ object PresenterImpl extends Presenter {
4950
n -= 1
5051
}
5152
serializeScalar(s)
52-
sb.append(':').append(' ')
53+
sb.append(':')
5354
serializeMapping(serializeNode(tail))
5455
case _: MappingEnd.type =>
5556
indent -= 2
@@ -81,7 +82,7 @@ object PresenterImpl extends Presenter {
8182
sb.append(' ')
8283
n -= 1
8384
}
84-
sb.append('-').append(' ')
85+
sb.append('-')
8586
case _ => ()
8687
}
8788

‎core/shared/src/test/scala-3/org/virtuslab/yaml/BaseYamlEncoderSuite.scala‎

Lines changed: 30 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@ package org.virtuslab.yaml
22

33
import org.virtuslab.yaml.*
44

5-
class YamlEncoderSuite extends munit.FunSuite:
6-
5+
class BaseYamlEncoderSuite extends munit.FunSuite {
76
test("plain value") {
87
val data: String = "aezakmi"
98
val expected =
109
s"""aezakmi
1110
|""".stripMargin
12-
1311
assertEquals(data.asYaml, expected)
1412
}
1513

@@ -20,61 +18,50 @@ class YamlEncoderSuite extends munit.FunSuite:
2018
|- Sammy Sosa
2119
|- Ken Griffey
2220
|""".stripMargin
23-
2421
assertEquals(data.asYaml, expected)
2522
}
2623

2724
test("sequence of mappings") {
2825
case class Data(int: Int, double: Double) derives YamlCodec
29-
val data = Seq(
30-
Data(1, 1.997),
31-
Data(2, 2.997)
32-
)
3326

27+
val data = Seq(Data(1, 1.997), Data(2, 2.997))
3428
val expected =
35-
s"""-
29+
s"""-
3630
| int: 1
3731
| double: 1.997
38-
|-
32+
|-
3933
| int: 2
4034
| double: 2.997
4135
|""".stripMargin
42-
4336
assertEquals(data.asYaml, expected)
4437
}
4538

4639
test("sequence of sequences") {
47-
val data = Seq(
48-
Seq(1, 2),
49-
Seq(3, 4)
50-
)
51-
40+
val data = Seq(Seq(1, 2), Seq(3, 4))
5241
val expected =
53-
s"""-
42+
s"""-
5443
| - 1
5544
| - 2
56-
|-
45+
|-
5746
| - 3
5847
| - 4
5948
|""".stripMargin
60-
6149
assertEquals(data.asYaml, expected)
6250
}
6351

6452
test("mapping of mappings") {
6553
case class Nested(a: Int, b: String) derives YamlCodec
6654
case class Data(first: Nested, second: Nested) derives YamlCodec
67-
val data = Data(Nested(1, "one"), Nested(2, "two"))
6855

56+
val data = Data(Nested(1, "one"), Nested(2, "two"))
6957
val expected =
70-
s"""first:
58+
s"""first:
7159
| a: 1
7260
| b: one
73-
|second:
61+
|second:
7462
| a: 2
7563
| b: two
7664
|""".stripMargin
77-
7865
assertEquals(data.asYaml, expected)
7966
}
8067

@@ -85,7 +72,6 @@ class YamlEncoderSuite extends munit.FunSuite:
8572
|2: b
8673
|3: c
8774
|""".stripMargin
88-
8975
assertEquals(data.asYaml, expected)
9076
}
9177

@@ -95,17 +81,17 @@ class YamlEncoderSuite extends munit.FunSuite:
9581
s"""- true
9682
|- false
9783
|""".stripMargin
98-
9984
assertEquals(data.asYaml, expected)
10085
}
10186

10287
test("enum case") {
103-
enum SomeEnum derives YamlCodec:
88+
enum SomeEnum derives YamlCodec {
10489
case Foo(value: Int)
10590
case Bar(price: Double)
106-
val data = SomeEnum.Foo(1)
107-
val expected = "value: 1"
91+
}
10892

93+
val data = SomeEnum.Foo(1)
94+
val expected = "value: 1"
10995
assertEquals(data.asYaml.trim, expected)
11096
}
11197

@@ -115,13 +101,12 @@ class YamlEncoderSuite extends munit.FunSuite:
115101

116102
val data = Person(Address("Anytown"), Seq(1, 2))
117103
val expected =
118-
s"""address:
104+
s"""address:
119105
| city: Anytown
120-
|ints:
106+
|ints:
121107
| - 1
122108
| - 2
123109
|""".stripMargin
124-
125110
assertEquals(data.asYaml, expected)
126111
}
127112

@@ -130,7 +115,6 @@ class YamlEncoderSuite extends munit.FunSuite:
130115

131116
val some = Foo(Some("some"))
132117
val none = Foo(None)
133-
134118
assertNoDiff(some.asYaml, "field: some")
135119
assertNoDiff(none.asYaml, "field: !!null")
136120
}
@@ -154,19 +138,19 @@ class YamlEncoderSuite extends munit.FunSuite:
154138
)
155139
)
156140
)
157-
val expected = """version: 3.9
158-
|services:
159-
| web:
160-
| build: .
161-
| ports:
162-
| - 5000:5000
163-
| volumes:
164-
| - .:/code
165-
| - logvolume01:/var/log
166-
| redis:
167-
| image: redis:alpine
168-
|""".stripMargin
169-
141+
val expected =
142+
"""version: 3.9
143+
|services:
144+
| web:
145+
| build: .
146+
| ports:
147+
| - 5000:5000
148+
| volumes:
149+
| - .:/code
150+
| - logvolume01:/var/log
151+
| redis:
152+
| image: redis:alpine
153+
|""".stripMargin
170154
assertEquals(data.asYaml, expected)
171155
}
172156

@@ -175,3 +159,4 @@ class YamlEncoderSuite extends munit.FunSuite:
175159
assertEquals(Char.MinValue.toString.asYaml, "\\u0000\n")
176160
assertEquals(Char.MaxValue.toString.asYaml, "\\uFFFF\n")
177161
}
162+
}

‎core/shared/src/test/scala-3/org/virtuslab/yaml/NodeCreationSuite.scala‎

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@ import org.virtuslab.yaml.Node.*
66
import org.virtuslab.yaml.*
77
import org.virtuslab.yaml.syntax.YamlPrimitive
88

9-
class NodeCreationSuite extends munit.FunSuite:
10-
9+
class NodeCreationSuite extends munit.FunSuite {
1110
test("mapping node") {
1211
val node = MappingNode(
13-
"hr" -> "65",
14-
"avg" -> "0.278",
12+
"hr" -> "65",
13+
"avg" -> "0.278",
1514
"blob" -> "nostradamus"
1615
)
17-
1816
assertEquals(
1917
node.asYaml,
2018
s"""|hr: 65
@@ -30,7 +28,6 @@ class NodeCreationSuite extends munit.FunSuite:
3028
"66",
3129
"aezakmi"
3230
)
33-
3431
assertEquals(
3532
node.asYaml,
3633
s"""|- 65
@@ -54,19 +51,17 @@ class NodeCreationSuite extends munit.FunSuite:
5451
),
5552
"standalone value"
5653
)
57-
5854
assertEquals(
5955
node.asYaml,
60-
"""|-
56+
"""|-
6157
| key: value
62-
|-
58+
|-
6359
| key2: value2
64-
| seq:
60+
| seq:
6561
| - v1
6662
| - v2
6763
|- standalone value
6864
|""".stripMargin
6965
)
7066
}
71-
72-
end NodeCreationSuite
67+
}

‎core/shared/src/test/scala/org/virtuslab/yaml/YamlEncoderSuite.scala‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ class YamlEncoderSpec extends munit.FunSuite {
1313
Seq(3, 4)
1414
)
1515
val expected =
16-
s"""-
16+
s"""-
1717
| - 1
1818
| - 2
19-
|-
19+
|-
2020
| - 3
2121
| - 4
2222
|""".stripMargin
@@ -29,10 +29,10 @@ class YamlEncoderSpec extends munit.FunSuite {
2929

3030
val data = Data(Seq(1, 2), Seq(3.0, 4.0))
3131
val expected =
32-
s"""ints:
32+
s"""ints:
3333
| - 1
3434
| - 2
35-
|doubles:
35+
|doubles:
3636
| - 3.0
3737
| - 4.0
3838
|""".stripMargin
@@ -82,7 +82,7 @@ class YamlEncoderSpec extends munit.FunSuite {
8282
",a", "[a", "]a", "{a", "}a", "#a", "&a", "*a", "!a", "|a", ">a", "'a", "\"a", "%a", "@a", "`a"
8383
)
8484
val expected =
85-
s"""- ""
85+
s"""- !!null
8686
|- "-"
8787
|- "?"
8888
|- ":"
@@ -123,12 +123,12 @@ class YamlEncoderSpec extends munit.FunSuite {
123123
)
124124
val expected =
125125
s"""- " a"
126-
|- "a: "
126+
|- "a:"
127127
|- "true "
128128
|- "a: b"
129129
|- "a # b"
130-
|- "a\\u001fb"
131-
|- "a\\u007fb"
130+
|- "a\\u001Fb"
131+
|- "a\\u007Fb"
132132
|""".stripMargin
133133
assertEquals(data.asYaml, expected)
134134
}

‎core/shared/src/test/scala/org/virtuslab/yaml/parser/ParserSuite.scala‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -182,28 +182,25 @@ class ParserSuite extends BaseYamlSuite {
182182

183183
test("parsing keeps order of keys") {
184184
val yaml = """
185-
|P:
185+
|P:
186186
| a: 0
187187
| b: 1
188188
| c: 2
189189
| d: 3
190190
| e: 4
191191
|""".stripMargin
192-
193192
val node = yaml.asNode.toOption.get
194-
195193
assertEquals(node.asYaml.trim, yaml.trim)
196194
}
197195

198196
test("parseYaml produces yaml node of document") {
199197
val yaml =
200198
"""name: John Wick
201199
|age: 40
202-
|address:
200+
|address:
203201
| - Anywhere
204202
| - 12-345
205203
|""".stripMargin
206-
207204
assertEquals(parseYaml(yaml).toOption.get.asYaml, yaml)
208205
}
209206

0 commit comments

Comments
 (0)