From a0de19f74d91671ca54ae61f6dc599460932bc42 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Mon, 29 Feb 2016 15:32:49 +0000 Subject: [PATCH] Fix feedback, refs #3199 --- src/Composer/IO/ConsoleIO.php | 41 +++++++++++++++------------------ src/Composer/IO/IOInterface.php | 2 +- src/Composer/IO/NullIO.php | 2 +- 3 files changed, 20 insertions(+), 25 deletions(-) diff --git a/src/Composer/IO/ConsoleIO.php b/src/Composer/IO/ConsoleIO.php index 918845828..e6a4bf537 100644 --- a/src/Composer/IO/ConsoleIO.php +++ b/src/Composer/IO/ConsoleIO.php @@ -219,17 +219,11 @@ class ConsoleIO extends BaseIO */ public function ask($question, $default = null) { - $output = $this->output; - - if ($output instanceof ConsoleOutputInterface) { - $output = $output->getErrorOutput(); - } - /** @var \Symfony\Component\Console\Helper\QuestionHelper $helper */ $helper = $this->helperSet->get('question'); $question = new Question($question, $default); - return $helper->ask($this->input, $output, $question); + return $helper->ask($this->input, $this->getErrorOutput(), $question); } /** @@ -237,17 +231,11 @@ class ConsoleIO extends BaseIO */ public function askConfirmation($question, $default = true) { - $output = $this->output; - - if ($output instanceof ConsoleOutputInterface) { - $output = $output->getErrorOutput(); - } - /** @var \Symfony\Component\Console\Helper\QuestionHelper $helper */ $helper = $this->helperSet->get('question'); $question = new ConfirmationQuestion($question, $default); - return $helper->ask($this->input, $output, $question); + return $helper->ask($this->input, $this->getErrorOutput(), $question); } /** @@ -255,19 +243,13 @@ class ConsoleIO extends BaseIO */ public function askAndValidate($question, $validator, $attempts = null, $default = null) { - $output = $this->output; - - if ($output instanceof ConsoleOutputInterface) { - $output = $output->getErrorOutput(); - } - /** @var \Symfony\Component\Console\Helper\QuestionHelper $helper */ $helper = $this->helperSet->get('question'); $question = new Question($question, $default); $question->setValidator($validator); $question->setMaxAttempts($attempts); - return $helper->ask($this->input, $output, $question); + return $helper->ask($this->input, $this->getErrorOutput(), $question); } /** @@ -283,8 +265,21 @@ class ConsoleIO extends BaseIO /** * {@inheritDoc} */ - public function select($question, $choices, $default = null, $attempts = false, $errorMessage = 'Value "%s" is invalid', $multiselect = false) + public function select($question, $choices, $default, $attempts = false, $errorMessage = 'Value "%s" is invalid', $multiselect = false) + { + if ($this->isInteractive()) { + return $this->helperSet->get('dialog')->select($this->getErrorOutput(), $question, $choices, $default, $attempts, $errorMessage, $multiselect); + } + + return $default; + } + + private function getErrorOutput() { - return $this->helperSet->get('dialog')->select($this->output, $question, $choices, $default, $attempts, $errorMessage, $multiselect); + if ($this->output instanceof ConsoleOutputInterface) { + return $this->output->getErrorOutput(); + } + + return $this->output; } } diff --git a/src/Composer/IO/IOInterface.php b/src/Composer/IO/IOInterface.php index 389694dbc..380e2a00c 100644 --- a/src/Composer/IO/IOInterface.php +++ b/src/Composer/IO/IOInterface.php @@ -163,7 +163,7 @@ interface IOInterface * * @throws \InvalidArgumentException */ - public function select($question, $choices, $default = null, $attempts = false, $errorMessage = 'Value "%s" is invalid', $multiselect = false); + public function select($question, $choices, $default, $attempts = false, $errorMessage = 'Value "%s" is invalid', $multiselect = false); /** * Get all authentication information entered. diff --git a/src/Composer/IO/NullIO.php b/src/Composer/IO/NullIO.php index 474ebf2ae..cc6d5eba1 100644 --- a/src/Composer/IO/NullIO.php +++ b/src/Composer/IO/NullIO.php @@ -122,7 +122,7 @@ class NullIO extends BaseIO /** * {@inheritDoc} */ - public function select($question, $choices, $default = null, $attempts = false, $errorMessage = 'Value "%s" is invalid', $multiselect = false) + public function select($question, $choices, $default, $attempts = false, $errorMessage = 'Value "%s" is invalid', $multiselect = false) { return $default; }