reapack

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

commit 1985eca6237fb0ff90a8a0027773b51b8530dffd
parent 782c55e67275cfb4ba1008f2f91efa89e64d83d1
Author: cfillion <cfillion@users.noreply.github.com>
Date:   Thu, 26 Nov 2015 21:55:19 -0500

add a method to access versions directly by their index

Diffstat:
Msrc/database.cpp | 10++++++++++
Msrc/database.hpp | 1+
Mtest/database.cpp | 7++-----
3 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/database.cpp b/src/database.cpp @@ -80,3 +80,13 @@ void Package::addVersion(VersionPtr ver) { m_versions.insert(ver); } + +VersionPtr Package::version(const int index) const +{ + auto it = m_versions.begin(); + + for(int i = 0; i < index; i++) + it++; + + return *it; +} diff --git a/src/database.hpp b/src/database.hpp @@ -67,6 +67,7 @@ public: void addVersion(VersionPtr ver); const VersionSet &versions() const { return m_versions; } + VersionPtr version(const int i) const; private: Category *m_category; diff --git a/test/database.cpp b/test/database.cpp @@ -171,9 +171,6 @@ TEST_CASE("package versions are sorted", M) { pack.addVersion(make_shared<Version>("0.1")); CHECK(pack.versions().size() == 2); - const VersionSet &versions = pack.versions(); - auto it = versions.begin(); - - REQUIRE(it->get()->name() == "0.1"); - REQUIRE((++it)->get()->name() == "1"); + REQUIRE(pack.version(0)->name() == "0.1"); + REQUIRE(pack.version(1)->name() == "1"); }