From c90f5415be4956c092ae8ca5d76df4c2397b58a4 Mon Sep 17 00:00:00 2001 From: maitesin <violador.de.segmentos@gmail.com> Date: Sun, 9 Aug 2015 14:40:50 +0100 Subject: [PATCH] Refactored a piece of code repeted three time. Created a function to replace this duplication of code. --- src/Mhwd.cpp | 38 ++++++++++++++------------------------ src/Mhwd.hpp | 1 + 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/src/Mhwd.cpp b/src/Mhwd.cpp index dc59918..e1f3dc7 100644 --- a/src/Mhwd.cpp +++ b/src/Mhwd.cpp @@ -54,29 +54,16 @@ bool Mhwd::performTransaction(std::shared_ptr<Config> config, MHWD::TRANSACTIONT // Print conflicts if (!transaction.conflictedConfigs_.empty()) { - std::string conflicts; - - for (auto&& conflictedConfig : transaction.conflictedConfigs_) - { - conflicts += " " + conflictedConfig->name_; - } - consoleWriter_.printError("config '" + config->name_ + "' conflicts with config(s):" + - conflicts); + gatherConfigContent(transaction.conflictedConfigs_)); return false; } // Print dependencies else if (!transaction.dependencyConfigs_.empty()) { - std::string dependencies; - - for (auto&& dependencyConfig : transaction.dependencyConfigs_) - { - dependencies += " " + dependencyConfig->name_; - } - - consoleWriter_.printStatus("Dependencies to install:" + dependencies + + consoleWriter_.printStatus("Dependencies to install:" + + gatherConfigContent(transaction.dependencyConfigs_) + "\nProceed with installation? [Y/n]"); std::string input; std::getline(std::cin, input); @@ -88,15 +75,8 @@ bool Mhwd::performTransaction(std::shared_ptr<Config> config, MHWD::TRANSACTIONT // Print requirements if (!transaction.configsRequirements_.empty()) { - std::string requirements; - - for (auto&& requirement : transaction.configsRequirements_) - { - requirements += " " + requirement->name_; - } - consoleWriter_.printError("config '" + config->name_ + "' is required by config(s):" + - requirements); + gatherConfigContent(transaction.configsRequirements_)); return false; } } @@ -1279,3 +1259,13 @@ int Mhwd::launch(int argc, char *argv[]) } return 0; } + +std::string Mhwd::gatherConfigContent(const std::vector<std::shared_ptr<Config>> & configuration) const +{ + std::string config; + for (auto&& c : configuration) + { + config += " " + c->name_; + } + return config; +} \ No newline at end of file diff --git a/src/Mhwd.hpp b/src/Mhwd.hpp index 32c6ab3..24434c7 100644 --- a/src/Mhwd.hpp +++ b/src/Mhwd.hpp @@ -100,6 +100,7 @@ private: void tryToParseCmdLineOptions(int argc, char* argv[], bool& autoConfigureNonFreeDriver, std::string& operationType, std::string& autoConfigureClassID); bool optionsDontInterfereWithEachOther() const; + std::string gatherConfigContent(const std::vector<std::shared_ptr<Config>> & config) const; }; #endif /* MHWD_HPP_ */ -- GitLab