Skip to content

Instantly share code, notes, and snippets.

@T3chW1zard
Created August 14, 2020 12:38
Show Gist options
  • Save T3chW1zard/9ecb92c1eacf3bd42ce0c2b82356878c to your computer and use it in GitHub Desktop.
Save T3chW1zard/9ecb92c1eacf3bd42ce0c2b82356878c to your computer and use it in GitHub Desktop.
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col) }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
SEPARATOR = ","
QUOTE = "'"
first = true
ROWS.each { row ->
COLUMNS.each { column ->
value = FORMATTER.format(row, column)
def q = !value.isNumber()
OUT.append(first ? "" : SEPARATOR)
.append(q ? QUOTE : "")
.append(value.replace(QUOTE, QUOTE + QUOTE))
.append(q ? QUOTE : "")
first = false
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment