fixed recursive iteration bug

This commit is contained in:
tmont 2009-06-28 08:13:16 +00:00
parent 3c47c48488
commit 175526841c
2 changed files with 20 additions and 4 deletions

View File

@ -32,6 +32,19 @@
parent::__construct(new RecursiveDirectoryIterator($dir)); parent::__construct(new RecursiveDirectoryIterator($dir));
} }
/**
* Gets the children for the inner iterator
*
* @author Tommy Montgomery
* @version 1.0
* @since 1.0
*
* @return RecursivePhpFileIterator
*/
public function getChildren() {
return new self($this->current()->getPathName());
}
/** /**
* Defines acceptance criteria for iteration * Defines acceptance criteria for iteration
* *
@ -43,9 +56,12 @@
*/ */
public function accept() { public function accept() {
return return
!$this->getInnerIterator()->isDot() && strpos($this->current()->getPathName(), DIRECTORY_SEPARATOR . '.') === false && (
strpos($this->current()->getPathName(), DIRECTORY_SEPARATOR . '.') === false && $this->current()->isDir() || (
substr($this->current()->getFileName(), -4) === '.php'; !$this->getInnerIterator()->isDot() &&
substr($this->current()->getFileName(), -4) === '.php'
)
);
} }
} }

View File

@ -60,7 +60,7 @@
* @return array * @return array
*/ */
public static function getTestsFromDir($dir, $recursive = true) { public static function getTestsFromDir($dir, $recursive = true) {
$iterator = ($recursive) ? new RecursivePhpFileIterator($dir) : new PhpFileIterator($dir); $iterator = ($recursive) ? new RecursiveIteratorIterator(new RecursivePhpFileIterator($dir)) : new PhpFileIterator($dir);
$tests = array(); $tests = array();
foreach ($iterator as $file) { foreach ($iterator as $file) {