Skip to content

Commit 356a5e7

Browse files
committed
Fix printing unknown values across multiple records. (#269)
1 parent e376dde commit 356a5e7

File tree

5 files changed

+10
-2
lines changed

5 files changed

+10
-2
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -566,6 +566,7 @@ Options:
566566

567567
Additional options when printing unknown values:
568568

569+
- `append`: Whether to open files in append mode if they exist. (Default: `true`)
569570
- `compression` (file output only): Compression mode. (Default: `auto`)
570571
- `destination`: Destination to write unknown values to; may include [format directives](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html#syntax) for counter and record ID (in that order). (Default: `stdout`)
571572
- `encoding` (file output only): Encoding used by the underlying writer. (Default: `UTF-8`)

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ subprojects {
4141
'jquery': '3.3.1-1',
4242
'junit_jupiter': '5.8.2',
4343
'junit_platform': '1.4.2',
44-
'metafacture': 'metafacture-core-5.4.1-rc1',
44+
'metafacture': 'metafacture-core-5.4.1-rc3',
4545
'mockito': '2.27.0',
4646
'requirejs': '2.3.6',
4747
'slf4j': '1.7.21',

metafix/src/main/java/org/metafacture/metafix/FixMethod.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -515,6 +515,7 @@ public void apply(final Metafix metafix, final Record record, final List<String>
515515
});
516516

517517
if (printUnknown) {
518+
options.putIfAbsent("append", "true");
518519
withWriter(options, null, consumer);
519520
}
520521
else {

metafix/src/main/java/org/metafacture/metafix/api/FixFunction.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ default void withWriter(final Map<String, String> options, final UnaryOperator<S
4949
final String destination = options.getOrDefault("destination", ObjectWriter.STDOUT);
5050
final ObjectWriter<String> writer = new ObjectWriter<>(operator != null ? operator.apply(destination) : destination);
5151

52+
withOption(options, "append", writer::setAppendIfFileExists, this::getBoolean);
5253
withOption(options, "compression", writer::setCompression);
5354
withOption(options, "encoding", writer::setEncoding);
5455
withOption(options, "footer", writer::setFooter);

metafix/src/test/java/org/metafacture/metafix/MetafixLookupTest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -934,7 +934,12 @@ public void shouldPrintUnknownWithSeparator() {
934934

935935
@Test
936936
public void shouldPrintUnknownToFile() throws IOException {
937-
MetafixTestHelpers.assertTempFile("you\ntoo\n", p -> shouldPrintUnknown(", destination: '" + p + "'", null, ""));
937+
MetafixTestHelpers.assertTempFile("Hey\nyou\nthere\nyou\ntoo\n", p -> shouldPrintUnknown(", destination: '" + p + "'", null, ""));
938+
}
939+
940+
@Test
941+
public void shouldPrintUnknownToFileWithoutAppend() throws IOException {
942+
MetafixTestHelpers.assertTempFile("you\ntoo\n", p -> shouldPrintUnknown(", destination: '" + p + "', append: 'false'", null, ""));
938943
}
939944

940945
private void assertMap(final String... fixDef) {

0 commit comments

Comments
 (0)