Permalink
Browse files

[Finder] Fixed iterator keys

  • Loading branch information...
jfsimon committed Jan 29, 2013
1 parent 31fce14 commit d33658c34672f48474a669227ca3639fa0b443e7
Showing with 19 additions and 6 deletions.
  1. +19 −6 Iterator/FilePathsIterator.php
@@ -40,6 +40,11 @@ class FilePathsIterator extends \ArrayIterator
*/
private $subPathname;
+ /**
+ * @var SplFileInfo
+ */
+ private $current;
+
/**
* @param array $paths List of paths returned by shell command
* @param string $baseDir Base dir for relative path building
@@ -70,21 +75,27 @@ public function __call($name, array $arguments)
*/
public function current()
{
- return new SplFileInfo(parent::current(), $this->subPath, $this->subPathname);
+ return $this->current;
+ }
+
+ /**
+ * @return string
+ */
+ public function key()
+ {
+ return $this->current->getPathname();
}
public function next()
{
parent::next();
-
- $this->buildSubPath();
+ $this->buildProperties();
}
public function rewind()
{
parent::rewind();
-
- $this->buildSubPath();
+ $this->buildProperties();
}
/**
@@ -103,7 +114,7 @@ public function getSubPathname()
return $this->subPathname;
}
- private function buildSubPath()
+ private function buildProperties()
{
$absolutePath = parent::current();
@@ -114,5 +125,7 @@ private function buildSubPath()
} else {
$this->subPath = $this->subPathname = '';
}
+
+ $this->current = new SplFileInfo(parent::current(), $this->subPath, $this->subPathname);
}
}

0 comments on commit d33658c

Please sign in to comment.