All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.cloudfoundry.gradle.text.FlexibleTableOutput.groovy Maven / Gradle / Ivy

Go to download

A Gradle plugin that makes it easy to deploy Gradle-based applications to Cloud Foundry instances.

The newest version!
package org.cloudfoundry.gradle.text

class FlexibleTableOutput {
    private def rows = []
    private def columns = [:]

    public void addRow(def values) {
        rows << values

        values.each { name, value ->
            if (columns[name]) {
                columns[name] << value.length()
            } else {
                columns[name] = [name.length(), value.length()]
            }
        }
    }

    public String toString() {
        StringBuilder sb = new StringBuilder()

        def columnSizes = [:]

        columns.each { name, sizes ->
            def max = sizes.max()
            columnSizes[name] = max
            sb.append(name.padRight(max)).append('  ')
        }
        sb.append('\n')

        columnSizes.each { name, size ->
            sb.append('-' * size).append('  ')
        }
        sb.append('\n')

        rows.each { row ->
            row.each { name, value ->
                sb.append(value.padRight(columnSizes[name])).append('  ')
            }
            sb.append('\n')
        }

        sb.toString()
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy