From 195ce491a1006e9ce5ab266fc722f01fe411666f Mon Sep 17 00:00:00 2001 From: Richard Morgan Date: Sun, 20 May 2018 22:36:27 -0400 Subject: [PATCH] CollectionManager for Tunes, Files and Books - models and domain code --- .../UseCases/ExtractTuneFromCollection.php | 13 +++++++++++++ src/Application/UseCases/ImportAbcFile.php | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Application/UseCases/ExtractTuneFromCollection.php b/src/Application/UseCases/ExtractTuneFromCollection.php index ef8acaa..98cf878 100644 --- a/src/Application/UseCases/ExtractTuneFromCollection.php +++ b/src/Application/UseCases/ExtractTuneFromCollection.php @@ -32,4 +32,17 @@ class ExtractTuneFromCollection }) ; } + + /** + * @return \XaiCorp\AbcParser\Domain\Core\Tune + */ + public function extractTuneFromPreparedCollection() : Tune + { + return $this->tunes + ->unique() + ->reduce(new Tune([]), function (Tune $carry, Tune $tune) { + return $carry->merge($tune); + }) + ; + } } diff --git a/src/Application/UseCases/ImportAbcFile.php b/src/Application/UseCases/ImportAbcFile.php index a7e30be..6733dca 100644 --- a/src/Application/UseCases/ImportAbcFile.php +++ b/src/Application/UseCases/ImportAbcFile.php @@ -50,7 +50,7 @@ class ImportAbcFile * @param array $abcs * @return \XaiCorp\AbcParser\Domain\Core\TuneCollection */ - public function importMultiple(array $abcs) + public function importMultiple(array $abcs) : TuneCollection { $result = Collection::make($abcs) ->map(function (string $abc) {