private function parseSource(Source $source, Filter $parentFilter = null)
 {
     $filter = new Filter($parentFilter, $source->getName(), $source->getExtensions());
     foreach ($source->getSources() as $subSource) {
         $this->parseSource($subSource, $filter);
     }
     foreach ($source->getPaths() as $path) {
         if (is_dir($path)) {
             $this->parseDirectory($path, $filter, $source->getExpand());
         } elseif (is_file($path)) {
             $filter->addFile($path);
         } else {
             throw new RuntimeException(sprintf('The path "%s" does not exists.', $path));
         }
     }
     return $filter;
 }
Exemple #2
0
 private function buildCompileCommandsForSource(ArrayObject $result, Project $project, Configuration $configuration, Source $source)
 {
     foreach ($source->getPaths() as $path) {
         if (is_dir($path)) {
             $this->buildCompileCommandsForDirectory($result, $project, $configuration, $path, $source->getExpand());
         } elseif (is_file($path)) {
             $this->buildCompileCommandForFile($result, $project, $configuration, $path);
         } else {
             throw new RuntimeException('Invalid path provided: ' . $path);
         }
     }
 }
 protected function parseSource($data)
 {
     $source = new Source();
     if (array_key_exists('extensions', $data)) {
         $source->setExtensions($data['extensions']);
     }
     if (array_key_exists('name', $data)) {
         $source->setName($data['name']);
     }
     if (array_key_exists('paths', $data)) {
         $source->setPaths($data['paths']);
     }
     if (array_key_exists('sources', $data)) {
         if (is_bool($data['sources'])) {
             $source->setExpand($data['sources']);
         } else {
             $sources = [];
             foreach ($data['sources'] as $sourceData) {
                 $sources[] = $this->parseSource($sourceData);
             }
             $source->setSources($sources);
         }
     }
     return $source;
 }