reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

commit 5ddaf9a0c8c29c49ae97d5a41f04200894b68d1c
parent ce381e3f57ffd801e50868bd280d5a736cecb2e3
Author: cfillion <cfillion@users.noreply.github.com>
Date:   Sun, 10 Apr 2016 13:31:07 -0400

refactor testing of whether registry entries exists

Diffstat:
Msrc/browser.cpp | 2+-
Msrc/registry.cpp | 4++--
Msrc/registry.hpp | 4+++-
Msrc/transaction.cpp | 4++--
Mtest/registry.cpp | 8+++++---
5 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/browser.cpp b/src/browser.cpp @@ -444,7 +444,7 @@ auto Browser::makeEntry(const Package *pkg, const Registry::Entry &regEntry) int flags = 0; - if(regEntry.id) { + if(regEntry) { flags |= InstalledFlag; if(regEntry.version < *latest) diff --git a/src/registry.cpp b/src/registry.cpp @@ -243,7 +243,7 @@ auto Registry::getEntries(const string &remoteName) const -> vector<Entry> set<Path> Registry::getFiles(const Entry &entry) const { - if(!entry.id) // skip processing for new packages + if(!entry) // skip processing for new packages return {}; set<Path> list; @@ -259,7 +259,7 @@ set<Path> Registry::getFiles(const Entry &entry) const string Registry::getMainFile(const Entry &entry) const { - if(!entry.id) + if(!entry) return {}; string mainFile; diff --git a/src/registry.hpp b/src/registry.hpp @@ -39,9 +39,11 @@ public: std::string package; Package::Type type; Version version; + + operator bool() const { return id != 0; } }; - Registry(const Path &path = Path()); + Registry(const Path &path = {}); Entry getEntry(const Package *) const; std::vector<Entry> getEntries(const std::string &) const; diff --git a/src/transaction.cpp b/src/transaction.cpp @@ -90,7 +90,7 @@ void Transaction::synchronize(const Package *pkg, const bool autoInstall) { const auto &regEntry = m_registry->getEntry(pkg); - if(!regEntry.id && !autoInstall) + if(!regEntry && !autoInstall) return; const Version *latest = pkg->lastVersion(); @@ -147,7 +147,7 @@ void Transaction::install(const Version *ver, InstallTicket::Type type; - if(regEntry.id && regEntry.version < *ver) + if(regEntry && regEntry.version < *ver) type = InstallTicket::Upgrade; else type = InstallTicket::Install; diff --git a/test/registry.cpp b/test/registry.cpp @@ -28,9 +28,10 @@ TEST_CASE("query uninstalled package", M) { Registry reg; - const Registry::Entry &res = reg.getEntry(&pkg); - REQUIRE(res.id == 0); - REQUIRE(res.version == Version()); + const Registry::Entry &entry = reg.getEntry(&pkg); + REQUIRE_FALSE(entry); + REQUIRE(entry.id == 0); + REQUIRE(entry.version == Version()); } TEST_CASE("query installed package", M) { @@ -39,6 +40,7 @@ TEST_CASE("query installed package", M) { Registry reg; const Registry::Entry &entry = reg.push(ver); + REQUIRE(entry); REQUIRE(entry.id == 1); REQUIRE(entry.remote == "Remote Name"); REQUIRE(entry.category == "Category Name");