toString method

  1. @override
String toString()
override

A string representation of this object.

Some classes have a default textual representation, often paired with a static parse function (like int.parse). These classes will provide the textual representation as their string representation.

Other classes have no meaningful textual representation that a program will care about. Such classes will typically override toString to provide useful information when inspecting the object, mainly for debugging or logging.

Implementation

@override
String toString() {
  final text = TablePrinter.columns(
    rows: [
      ['Project directory', projectDir.path],
      if (preexistingProject != true) ...[
        ['Create new project', 'yes'],
        ['Uses DB', usesDb ? 'yes' : 'no'],
      ] else
        ['Existing project', projectId],
      if (suggestedPreDeployScripts.isNotEmpty) ...[
        [
          'Pre-deploy hooks',
          suggestedPreDeployScripts
              .map((final hook) => "- '$hook'")
              .join('\n                    '),
        ],
      ],
    ],
    columnSeparator: '  ',
  ).toString();
  return text.substring(0, text.length - 1); // trims last newline
}