public function AssetCollectionFilterIterator::accept

Determines whether the current asset is a duplicate.

De-duplication is performed based on either strict equality or by matching sources.

Return value

Boolean Returns true if we have not seen this asset yet

File

drupal/core/vendor/kriswallsmith/assetic/src/Assetic/Asset/Iterator/AssetCollectionFilterIterator.php, line 50

Class

AssetCollectionFilterIterator
Asset collection filter iterator.

Namespace

Assetic\Asset\Iterator

Code

public function accept() {
  $asset = $this
    ->getInnerIterator()
    ->current(true);
  $duplicate = false;

  // check strict equality
  if (in_array($asset, $this->visited, true)) {
    $duplicate = true;
  }
  else {
    $this->visited[] = $asset;
  }

  // check source
  $sourceRoot = $asset
    ->getSourceRoot();
  $sourcePath = $asset
    ->getSourcePath();
  if ($sourceRoot && $sourcePath) {
    $source = $sourceRoot . '/' . $sourcePath;
    if (in_array($source, $this->sources)) {
      $duplicate = true;
    }
    else {
      $this->sources[] = $source;
    }
  }
  return !$duplicate;
}