public function mergeNextPage(ResourceCollection $nextPage) { foreach ($nextPage as $resource) { $this->add($resource); } $this->nextUri = $nextPage->getNextUri(); }
public function test_apply_ManyMaps() { $map = new ResourceMap(); $map->map(['b', 'c'], 'new'); $map->map('a', 'n'); $collection = new ResourceCollection(); $collection->add('1')->add('b')->add('c')->add('a'); $map->apply($collection); $this->assertEquals(['1', 'new', 'n'], $collection->get()); }
/** * @param ResourceCollection $collection */ public function apply(ResourceCollection $collection) { foreach ($this->map as $newFile => $oldFile) { if (is_string($oldFile)) { $collection->replace($oldFile, $newFile); continue; } $firstResource = array_shift($oldFile); $collection->replace($firstResource, $newFile); $collection->remove($oldFile); } }
/** * Maps resources request to a ResourceCollection * * @return ResourceCollection */ public function map($context, array $resources) { $collection = new ResourceCollection($context); foreach ($resources as $location => $resource) { if (is_int($location)) { $collection->add(new Resource($resource, $this->locator->locate($context, $resource))); } else { $collection->add(new Resource($resource, ltrim($location, '/'))); } } return $collection; }
/** * @param TransformerAbstract $transformer * @param $object * @param string $apiVersion * * @return Scope */ protected function initScope(TransformerAbstract $transformer, $object, $apiVersion = "v2") { $resource = new Item($object, $transformer); $scope = $this->fractal->createData($resource); $shortName = $transformer->getCurrentResourceKey(); if (!($dunglasResource = $this->resourceCollection->getResourceForShortNameWithVersion(ucfirst($shortName), $apiVersion))) { throw new \InvalidArgumentException(sprintf('The resource "%s" cannot be found.', $shortName)); } $scope->setDunglasResource($dunglasResource); return $scope; }
<?php include 'init.php'; ?> <html> <head> <title>Inline images testing</title> <?php $Resources = new ResourceCollection('CSS'); $Resources->addFile('css/background-inline.css')->handler(function ($string, $config) { $dataURI = new dataURI($string); return '/*' . "\r\n" . $dataURI->getMhtmlContent() . '*/' . $dataURI->getProcessedContent(); })->inline()->flush(); ?> </head> <body> <div>This square should be gray</div> </body> </html>
public function test_iteration() { $expected = ['a', 'b', 'c']; $curr = 0; $collection = new ResourceCollection(); $collection->add('a'); $collection->add('b'); $collection->add('c'); foreach ($collection as $value) { $this->assertEquals($expected[$curr++], $value); } $this->assertEquals(count($expected), $curr); }
/** {@inheritdoc} */ public function count() { return $this->resourceCollection->count(); }