Skip to content

Commit ea37bb6

Browse files
authored
Merge pull request #1153 from HubSpot/sorted-map-pprint
Make output of map sorted by key in pprint.
2 parents 6003ef0 + 9ac4f6e commit ea37bb6

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

.build-jdk17

Whitespace-only changes.

src/main/java/com/hubspot/jinjava/lib/filter/PrettyPrintFilter.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.hubspot.jinjava.objects.date.PyishDate;
1111
import java.util.Map;
1212
import java.util.Objects;
13+
import java.util.TreeMap;
1314

1415
@JinjavaDoc(
1516
value = "Pretty print a variable. Useful for debugging.",
@@ -45,10 +46,12 @@ public Object filter(Object var, JinjavaInterpreter interpreter, String... args)
4546
var instanceof String ||
4647
var instanceof Number ||
4748
var instanceof PyishDate ||
48-
var instanceof Iterable ||
49-
var instanceof Map
49+
var instanceof Iterable
5050
) {
5151
varStr = Objects.toString(var);
52+
} else if (var instanceof Map) {
53+
TreeMap map = new TreeMap((Map) var);
54+
varStr = Objects.toString(map);
5255
} else {
5356
try {
5457
varStr =

src/test/java/com/hubspot/jinjava/lib/filter/PrettyPrintFilterTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ public void ppPyDate() {
5252

5353
@Test
5454
public void ppMap() {
55-
assertThat(f.filter(ImmutableMap.of("a", "foo", "b", "bar"), null))
56-
.isEqualTo("{% raw %}(RegularImmutableMap: {a=foo, b=bar}){% endraw %}");
55+
assertThat(f.filter(ImmutableMap.of("b", "foo", "a", "bar"), null))
56+
.isEqualTo("{% raw %}(RegularImmutableMap: {a=bar, b=foo}){% endraw %}");
5757
}
5858

5959
@Test

0 commit comments

Comments
 (0)