// Copyright (C) 2022 WYATT GROUP // Please see the AUTHORS file for details. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . import 'package:wyatt_cli_toolbox/src/prompt/question.dart'; export 'boolean_question.dart'; export 'framework/framework.dart'; export 'framework/theme.dart'; export 'list_question.dart'; export 'message.dart'; export 'number_question.dart'; export 'password_question.dart'; export 'question.dart'; export 'string_question.dart'; export 'widgets/input.dart'; class Prompt { Prompt({this.questions}); Map answers = {}; List>? questions; void add(Question question) { if (questions != null) { questions!.add(question); } else { questions = >[question]; } } void addAll(List> questions) { if (this.questions != null) { this.questions!.addAll(questions); } else { this.questions = questions; } } Map ask() { if (questions != null) { for (final Question question in questions!) { if (!(question.type == QuestionType.message)) { answers[question.identifier] = question.ask(); } else { question.ask(); } } } else { throw Exception('You must add questions before asking for prompt.'); } return answers; } }