Skip to content

Commit 925ce7f

Browse files
committed
R Grid converted to array of MarkdownTableElements
1 parent ee10688 commit 925ce7f

File tree

4 files changed

+57
-11
lines changed

4 files changed

+57
-11
lines changed

approvaltests-util/src/main/java/com/spun/util/MarkdownTable.java

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
public class MarkdownTable implements MarkdownCompatible
77
{
8-
protected String markdown;
8+
public Queryable<MarkdownTableElement> markdown = new Queryable<MarkdownTableElement>(MarkdownTableElement.class);
99
public static <I, O> MarkdownTable create(I[] inputs, Function1<I, O> o, String column1, String column2)
1010
{
1111
MarkdownTable table = new MarkdownTable().withColumnHeaders(column1, column2);
@@ -32,12 +32,12 @@ public <I> MarkdownTable addRowsForInputs(I[] inputs, Function1<I, Object>... tr
3232
}
3333
public MarkdownTable addRow(Object... columns)
3434
{
35-
markdown += printRow(columns);
35+
markdown.addAll(constructRow(columns));
3636
return this;
3737
}
3838
public MarkdownTable withColumnHeaders(String... headers)
3939
{
40-
markdown = printColumnHeaders(headers);
40+
markdown.addAll(constructColumnHeaders(headers));
4141
return this;
4242
}
4343
@Override
@@ -48,21 +48,37 @@ public String toString()
4848
@Override
4949
public String toMarkdown()
5050
{
51-
return markdown;
51+
return render(markdown);
5252
}
5353
public static String printColumnHeaders(String... headers)
5454
{
55-
return printRow(headers) + printRow(ArrayUtils.of("---", headers.length));
55+
return render(constructColumnHeaders(headers));
56+
}
57+
public static Queryable<MarkdownTableElement> constructColumnHeaders(String... headers)
58+
{
59+
Queryable<MarkdownTableElement> row = constructRow(headers);
60+
row.addAll(constructRow(ArrayUtils.of("---", headers.length)));
61+
return row;
5662
}
5763
public static String printRow(Object... columns)
5864
{
59-
StringBuffer b = new StringBuffer();
60-
b.append("|");
65+
return render(constructRow(columns));
66+
}
67+
68+
private static String render(Queryable<MarkdownTableElement> table) {
69+
return table.join("");
70+
}
71+
72+
public static Queryable<MarkdownTableElement> constructRow(Object... columns)
73+
{
74+
Queryable row = new Queryable(MarkdownTableElement.class);
75+
row.add(MarkdownTableElement.DELIMITER);
6176
for (int x = 0; x < columns.length; ++x)
6277
{
63-
b.append(String.format(" %s |", columns[x]));
78+
row.add(new MarkdownTableContents("" + columns[x]));
79+
row.add(MarkdownTableElement.DELIMITER);
6480
}
65-
b.append("\n");
66-
return b.toString();
81+
row.add(MarkdownTableElement.NEWLINE);
82+
return row;
6783
}
6884
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.spun.util;
2+
3+
public class MarkdownTableContents {
4+
private String contents;
5+
6+
public MarkdownTableContents(String contents) {
7+
this.contents = contents;
8+
}
9+
10+
@Override
11+
public String toString() {
12+
return " " + contents + " ";
13+
}
14+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.spun.util;
2+
3+
public interface MarkdownTableElement {
4+
MarkdownTableElement DELIMITER = new MarkdownTableElement() {
5+
@Override
6+
public String toString() {
7+
return "|";
8+
}
9+
};
10+
MarkdownTableElement NEWLINE = new MarkdownTableElement() {
11+
@Override
12+
public String toString() {
13+
return "\n";
14+
}
15+
};
16+
}

approvaltests/src/main/java/org/approvaltests/utils/VerifiableMarkdownTable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
public class VerifiableMarkdownTable extends MarkdownTable implements Verifiable
1010
{
1111
public VerifiableMarkdownTable(MarkdownTable markdownTableBasic) {
12-
this.markdown = markdownTableBasic.toMarkdown();
12+
this.markdown = markdownTableBasic.markdown;
1313
}
1414

1515
public static <I, O> VerifiableMarkdownTable create(I[] inputs, Function1<I, O> o, String column1, String column2)

0 commit comments

Comments
 (0)