+++ /dev/null
-<?php
-
-/**
- * Output formatter 'key_value'
- *
- * @param $data
- * The $data parameter contains an array of key / value pairs which
- * are rendered as "key : value" in a formatted word-wrapped table
- * with aligned columns. 'value' is expected to always be a simple string;
- * if it is not, it is rendered with var_export.
- * @param $metadata
- * 'label' - If present, creates a section header "[label]" prior to the data
- * 'separator' - If present, used instead of ', ' when impoding data values
- * 'ini-item' - If present, selects a single item from any data value that is
- * an array and uses it instead of imploding all values together.
- *
- * Code:
- *
- * return array(
- * "b" => "Two B or ! Two B, that is the comparison",
- * "c" => "I see that C has gone to Sea"
- * );
- *
- * Output with --format=key-value:
- *
- * b : Two B or ! Two B,
- * that is the
- * comparison
- * c : I see that C has gone
- * to Sea
- *
- * Code:
- *
- * return array(
- * "a" => array(
- * "b" => "Two B or ! Two B, that is the comparison",
- * "c" => "I see that C has gone to Sea"
- * ),
- * "d" => array(
- * "e" => "Elephants and electron microscopes",
- * "f" => "My margin is too small"
- * )
- * );
- *
- * Output with --format=key-value-list:
- *
- * b : Two B or ! Two B,
- * that is the
- * comparison
- * c : I see that C has gone
- * to Sea
- *
- * e : Elephants and
- * electron microscopes
- * f : My margin is too
- * small
- */
-class drush_outputformat_key_value extends drush_outputformat {
- function format($input, $metadata) {
- if (!is_array($input)) {
- if (isset($metadata['label'])) {
- $input = array(dt($metadata['label']) => $input);
- }
- else {
- return $this->format_error(dt('No label provided.'));
- }
- }
- $kv_metadata = isset($metadata['table-metadata']) ? $metadata['table-metadata'] : array();
- if ((!isset($kv_metadata['key-value-item'])) && (isset($metadata['field-labels']))) {
- $input = drush_select_output_fields($input, $metadata['field-labels'], $metadata['field-mappings']);
- }
- if (isset($metadata['include-field-labels'])) {
- $kv_metadata['include-field-labels'] = $metadata['include-field-labels'];
- }
- $formatted_table = drush_key_value_to_array_table($input, $kv_metadata);
- if ($formatted_table === FALSE) {
- return FALSE;
- }
- return drush_format_table($formatted_table, FALSE, array());
- }
-}