/**
  * import a single file into a collection
  *
  * @param SplFileInfo     $file   file
  * @param InputInterface  $input  User input on console
  * @param OutputInterface $output Output of the command
  *
  * @return void
  */
 private function importResource(\SplFileInfo $file, InputInterface $input, OutputInterface $output)
 {
     $doc = $this->frontMatter->parse($file->getContents());
     $origDoc = $this->serializer->unserialize($doc->getContent());
     if (is_null($origDoc)) {
         $output->writeln("<error>Could not deserialize file <{$file}></error>");
     } else {
         $collectionName = $doc->getData()['collection'];
         $this->getClient($input)->selectCollection($this->databaseName, $collectionName)->save($origDoc);
         $output->writeln("<info>Imported <{$file}> to <{$collectionName}></info>");
     }
 }
 /**
  * Read content of fisture file. split content by "--EXPECT--"
  * First part is Yaml to be used with configuration.
  * Second part can be:
  *  - fully qualified name of exception throw during configuration processing
  *  - array resulting of processing configuration
  *
  * @param \SplFileInfo $file
  * @return array
  */
 private function parseFixture(\SplFileInfo $file)
 {
     $contents = $file->getContents();
     $data = ['yaml' => null, 'expect' => null, 'exception' => null];
     $values = explode('--EXPECT--', $contents);
     $data['yaml'] = $values[0];
     $result = str_replace([' ', "\n"], '', $values[1]);
     if (false === stripos($result, 'exception')) {
         eval("\$data['expect'] = {$result} ;");
     } else {
         $data['exception'] = $result;
     }
     return $data;
 }
Example #3
0
 public function testDecoratedMethods()
 {
     $decorated = $this->getMockBuilder('hanneskod\\classtools\\Tests\\MockSplFileInfo')->setConstructorArgs([''])->getMock();
     $decorated->expects($this->once())->method('getRelativePath');
     $decorated->expects($this->once())->method('getRelativePathname');
     $decorated->expects($this->once())->method('getContents');
     $decorated->expects($this->once())->method('getATime');
     $decorated->expects($this->once())->method('getBasename');
     $decorated->expects($this->once())->method('getCTime');
     $decorated->expects($this->once())->method('getExtension');
     $decorated->expects($this->once())->method('getFileInfo');
     $decorated->expects($this->once())->method('getFilename');
     $decorated->expects($this->once())->method('getGroup');
     $decorated->expects($this->once())->method('getInode');
     $decorated->expects($this->once())->method('getLinkTarget');
     $decorated->expects($this->once())->method('getMTime');
     $decorated->expects($this->once())->method('getOwner');
     $decorated->expects($this->once())->method('getPath');
     $decorated->expects($this->once())->method('getPathInfo');
     $decorated->expects($this->once())->method('getPathname');
     $decorated->expects($this->once())->method('getPerms');
     $decorated->expects($this->once())->method('getRealPath');
     $decorated->expects($this->once())->method('getSize');
     $decorated->expects($this->once())->method('getType');
     $decorated->expects($this->once())->method('isDir');
     $decorated->expects($this->once())->method('isExecutable');
     $decorated->expects($this->once())->method('isFile');
     $decorated->expects($this->once())->method('isLink');
     $decorated->expects($this->once())->method('isReadable');
     $decorated->expects($this->once())->method('isWritable');
     $decorated->expects($this->once())->method('openFile');
     $decorated->expects($this->once())->method('setFileClass');
     $decorated->expects($this->once())->method('setInfoClass');
     $decorated->expects($this->once())->method('__toString')->will($this->returnValue(''));
     $fileInfo = new SplFileInfo($decorated);
     $fileInfo->getRelativePath();
     $fileInfo->getRelativePathname();
     $fileInfo->getContents();
     $fileInfo->getATime();
     $fileInfo->getBasename();
     $fileInfo->getCTime();
     $fileInfo->getExtension();
     $fileInfo->getFileInfo();
     $fileInfo->getFilename();
     $fileInfo->getGroup();
     $fileInfo->getInode();
     $fileInfo->getLinkTarget();
     $fileInfo->getMTime();
     $fileInfo->getOwner();
     $fileInfo->getPath();
     $fileInfo->getPathInfo();
     $fileInfo->getPathname();
     $fileInfo->getPerms();
     $fileInfo->getRealPath();
     $fileInfo->getSize();
     $fileInfo->getType();
     $fileInfo->isDir();
     $fileInfo->isExecutable();
     $fileInfo->isFile();
     $fileInfo->isLink();
     $fileInfo->isReadable();
     $fileInfo->isWritable();
     $fileInfo->openFile();
     $fileInfo->setFileClass();
     $fileInfo->setInfoClass();
     (string) $fileInfo;
 }
Example #4
0
    $response = new Response();
    $response->setPublic();
    $recipeDocsPath = $app['recipes.path'] . '/docs/';
    if ($page === 'index') {
        $file = new SplFileInfo($app['recipes.path'] . '/README.md');
    } else {
        $file = new SplFileInfo($recipeDocsPath . $page . '.md');
    }
    if (!$file->isReadable()) {
        throw new \Symfony\Component\HttpKernel\Exception\NotFoundHttpException();
    }
    $response->setLastModified(new DateTime('@' . $file->getMTime()));
    if ($response->isNotModified($request)) {
        return $response;
    }
    $response->headers->set('Content-Type', 'text/html');
    $response->setCharset('UTF-8');
    list($body, $title) = parse_md(file_get_contents($file->getPathname()));
    // Generate menu based on files list
    $finder = new Finder();
    $finder->files()->in($recipeDocsPath);
    $nav = [];
    foreach ($finder as $file) {
        /** @var \Symfony\Component\Finder\SplFileInfo $file */
        list($_, $name) = parse_md($file->getContents());
        $nav[] = ['title' => $name, 'link' => $request->getBaseUrl() . '/recipes/' . $file->getBasename('.md')];
    }
    $response->setContent(render('recipes.twig', ['title' => $title, 'nav' => $nav, 'content' => $body]));
    return $response;
})->assert('page', '[\\w/-]+')->value('page', 'index');
return $controller;