コード例 #1
0
ファイル: OfferSet.php プロジェクト: hughgrigg/ching-shop
 /**
  * Buckets for each potential offer, keeping duplicate offers.
  *
  * @throws \InvalidArgumentException
  *
  * @return Collection|PotentialOffer[]
  */
 private function potentials() : Collection
 {
     return $this->components->map(function (OfferComponent $component) {
         return $component->product();
     })->filter(function (Product $product) {
         return $product->offers->count();
     })->reduce(function (Collection $potentials, Product $product) {
         return $potentials->push(new PotentialOffer($product->offers->first()));
     }, new Collection());
 }
コード例 #2
0
 /**
  * @return string
  */
 public function listComponents() : string
 {
     $identifiers = $this->components->map(function (OfferComponent $component) {
         return $component->product()->sku;
     });
     if ($identifiers->count() > 1) {
         return sprintf('%s and %s', $identifiers->slice(0, -1)->implode(', '), $identifiers->last());
     }
     return $identifiers->pop();
 }