/** * @inheritdoc */ public function supports($data, Resource $resource) { if (!$resource->hasMetadata('dir') || !$resource->hasMetadata('type')) { return false; } return parent::supports($data, $this->convertResource($resource)); }
/** * @covers Yosmanyga\Resource\Resource::setMetadata * @covers Yosmanyga\Resource\Resource::getMetadata * @covers Yosmanyga\Resource\Resource::hasMetadata * @covers Yosmanyga\Resource\Resource::setType * @covers Yosmanyga\Resource\Resource::getType * @covers Yosmanyga\Resource\Resource::hasType */ public function testAccessors() { $resource = new Resource(); $resource->setMetadata('foo1', 'bar1'); $resource->setMetadata('foo2', 'bar2'); $resource->setType('foo'); $this->assertTrue($resource->hasMetadata('foo1')); $this->assertEquals('bar1', $resource->getMetadata('foo1')); $this->assertEquals(array('foo1' => 'bar1', 'foo2' => 'bar2'), $resource->getMetadata()); $this->assertFalse($resource->hasMetadata('foo3')); $this->assertEquals('foo', $resource->getType()); $this->assertTrue($resource->hasType()); $resource = new Resource(); $this->assertFalse($resource->hasType()); }
/** * @inheritdoc */ public function supports(Resource $resource, Resource $parentResource) { if ($resource->hasMetadata('file') && 0 === strpos(parse_url($resource->getMetadata('file'), PHP_URL_PATH), '/')) { return true; } return false; }
/** * @inheritdoc */ public function supports(Resource $resource, Resource $parentResource) { if ($resource->hasMetadata('file') && 0 === strpos($resource->getMetadata('file'), '@')) { return true; } return false; }
/** * @inheritdoc */ public function supports(Resource $resource) { if (!$resource->hasMetadata('data')) { return false; } return true; }
/** * @inheritdoc */ public function supports(Resource $resource, Resource $parentResource) { if (!$resource->hasMetadata('dir') || 0 === strpos(parse_url($resource->getMetadata('dir'), PHP_URL_PATH), '/')) { return false; } foreach ($this->firstCharacters as $character) { if (0 === strpos($resource->getMetadata('dir'), $character)) { return false; } } return true; }
/** * @inheritdoc */ public function supports(Resource $resource) { if ($resource->hasType()) { if ('xml' == $resource->getType()) { return true; } return false; } if ($resource->hasMetadata('file') && in_array(pathinfo($resource->getMetadata('file'), PATHINFO_EXTENSION), array('xml'))) { return true; } return false; }
/** * @inheritdoc */ public function supports(Resource $resource) { if ($resource->hasType()) { if ('in_memory' == $resource->getType()) { return true; } return false; } // Assumes that a resource with "data" metadata is an "in_memory" resource if ($resource->hasMetadata('data')) { return true; } return false; }
/** * @inheritdoc */ public function supports(Resource $resource) { if ($resource->hasType()) { if ('file' == $resource->getType()) { return true; } return false; } // Assumes that a resource with "file" metadata is an "file" resource if ($resource->hasMetadata('file')) { return true; } return false; }
private function calculateDirVersion(Resource $resource) { // Adjust finder $dir = $resource->getMetadata('dir'); if (!is_dir($dir)) { throw new \InvalidArgumentException(sprintf('Directory "%s" not found.', $dir)); } $this->finder->files()->in($dir); if ($resource->hasMetadata('filter')) { $this->finder->name($resource->getMetadata('filter')); } if ($resource->hasMetadata('depth')) { $this->finder->depth($resource->getMetadata('depth')); } else { $this->finder->depth('>= 0'); } $version = array(); /** @var \SplFileInfo $file */ foreach ($this->finder->getIterator() as $file) { $version[md5($file->getRealPath())] = filemtime($file); } return $version; }
/** * @inheritdoc */ public function open(Resource $resource) { $file = $resource->getMetadata('file'); if (!is_file($file)) { throw new \InvalidArgumentException(sprintf('File "%s" not found.', $file)); } try { $annotation = $resource->hasMetadata('annotation') ? $resource->getMetadata('annotation') : ''; $data = $this->getData($file, $annotation); } catch (\Exception $e) { throw new \InvalidArgumentException($e->getMessage(), 0, $e); } $this->inMemoryReader = new InMemoryReader(); $this->inMemoryReader->open(new Resource(array('data' => $data), 'in_memory')); }
private function prepareFinder() { if (!isset($this->resource)) { throw new \RuntimeException('Resource not set.'); } $dir = $this->resource->getMetadata('dir'); if (!is_dir($dir)) { throw new \InvalidArgumentException(sprintf('Directory "%s" not found.', $dir)); } $this->finder->files()->in($dir); if ($this->resource->hasMetadata('filter')) { $this->finder->name($this->resource->getMetadata('filter')); } if ($this->resource->hasMetadata('depth')) { $this->finder->depth($this->resource->getMetadata('depth')); } else { $this->finder->depth('>= 0'); } $this->iterator = $this->finder->getIterator(); $this->iterator->rewind(); }