summaryrefslogtreecommitdiffstats
path: root/Aufgabe06/vendor/symfony/console/Symfony/Component/Console/Question/ChoiceQuestion.php
diff options
context:
space:
mode:
authorStefan Suhren <suhren.stefan@fh-swf.de>2015-05-11 15:02:33 +0200
committerStefan Suhren <suhren.stefan@fh-swf.de>2015-05-11 15:02:33 +0200
commita7e17cb70e9306f8887bd2b5ca1a37edcbe3ea0f (patch)
treebf6e04c9bdba66e249fd6b78391e132da130848c /Aufgabe06/vendor/symfony/console/Symfony/Component/Console/Question/ChoiceQuestion.php
parentea3fed0df4eaedd820f3f405502b62efe5952f8f (diff)
downloadInternetTechnologien-a7e17cb70e9306f8887bd2b5ca1a37edcbe3ea0f.tar.gz
InternetTechnologien-a7e17cb70e9306f8887bd2b5ca1a37edcbe3ea0f.zip
Let composer manage its own files
Diffstat (limited to 'Aufgabe06/vendor/symfony/console/Symfony/Component/Console/Question/ChoiceQuestion.php')
-rw-r--r--Aufgabe06/vendor/symfony/console/Symfony/Component/Console/Question/ChoiceQuestion.php150
1 files changed, 0 insertions, 150 deletions
diff --git a/Aufgabe06/vendor/symfony/console/Symfony/Component/Console/Question/ChoiceQuestion.php b/Aufgabe06/vendor/symfony/console/Symfony/Component/Console/Question/ChoiceQuestion.php
deleted file mode 100644
index e1da7a8..0000000
--- a/Aufgabe06/vendor/symfony/console/Symfony/Component/Console/Question/ChoiceQuestion.php
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Console\Question;
-
-/**
- * Represents a choice question.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class ChoiceQuestion extends Question
-{
- private $choices;
- private $multiselect = false;
- private $prompt = ' > ';
- private $errorMessage = 'Value "%s" is invalid';
-
- /**
- * Constructor.
- *
- * @param string $question The question to ask to the user
- * @param array $choices The list of available choices
- * @param mixed $default The default answer to return
- */
- public function __construct($question, array $choices, $default = null)
- {
- parent::__construct($question, $default);
-
- $this->choices = $choices;
- $this->setValidator($this->getDefaultValidator());
- $this->setAutocompleterValues(array_keys($choices));
- }
-
- /**
- * Returns available choices.
- *
- * @return array
- */
- public function getChoices()
- {
- return $this->choices;
- }
-
- /**
- * Sets multiselect option.
- *
- * When multiselect is set to true, multiple choices can be answered.
- *
- * @param bool $multiselect
- *
- * @return ChoiceQuestion The current instance
- */
- public function setMultiselect($multiselect)
- {
- $this->multiselect = $multiselect;
- $this->setValidator($this->getDefaultValidator());
-
- return $this;
- }
-
- /**
- * Gets the prompt for choices.
- *
- * @return string
- */
- public function getPrompt()
- {
- return $this->prompt;
- }
-
- /**
- * Sets the prompt for choices.
- *
- * @param string $prompt
- *
- * @return ChoiceQuestion The current instance
- */
- public function setPrompt($prompt)
- {
- $this->prompt = $prompt;
-
- return $this;
- }
-
- /**
- * Sets the error message for invalid values.
- *
- * The error message has a string placeholder (%s) for the invalid value.
- *
- * @param string $errorMessage
- *
- * @return ChoiceQuestion The current instance
- */
- public function setErrorMessage($errorMessage)
- {
- $this->errorMessage = $errorMessage;
- $this->setValidator($this->getDefaultValidator());
-
- return $this;
- }
-
- /**
- * Returns the default answer validator.
- *
- * @return callable
- */
- private function getDefaultValidator()
- {
- $choices = $this->choices;
- $errorMessage = $this->errorMessage;
- $multiselect = $this->multiselect;
-
- return function ($selected) use ($choices, $errorMessage, $multiselect) {
- // Collapse all spaces.
- $selectedChoices = str_replace(' ', '', $selected);
-
- if ($multiselect) {
- // Check for a separated comma values
- if (!preg_match('/^[a-zA-Z0-9_-]+(?:,[a-zA-Z0-9_-]+)*$/', $selectedChoices, $matches)) {
- throw new \InvalidArgumentException(sprintf($errorMessage, $selected));
- }
- $selectedChoices = explode(',', $selectedChoices);
- } else {
- $selectedChoices = array($selected);
- }
-
- $multiselectChoices = array();
- foreach ($selectedChoices as $value) {
- if (empty($choices[$value])) {
- throw new \InvalidArgumentException(sprintf($errorMessage, $value));
- }
- array_push($multiselectChoices, $choices[$value]);
- }
-
- if ($multiselect) {
- return $multiselectChoices;
- }
-
- return $choices[$selected];
- };
- }
-}