Exemplo n.º 1
0
 public function testForced()
 {
     // defaults to false
     $this->assertEquals(false, $this->fixture->isForced());
     $xml = new SimpleXMLElement('<project></project>');
     $xml->addAttribute('version', DocBlox_Core_Abstract::VERSION);
     $this->fixture->setExistingXml($xml->asXML());
     $this->assertEquals(false, $this->fixture->isForced());
     // if version differs, we force a rebuild
     $xml['version'] = DocBlox_Core_Abstract::VERSION . 'a';
     $this->fixture->setExistingXml($xml->asXML());
     $this->assertEquals(true, $this->fixture->isForced());
     // switching back should undo the force
     $xml['version'] = DocBlox_Core_Abstract::VERSION;
     $this->fixture->setExistingXml($xml->asXML());
     $this->assertEquals(false, $this->fixture->isForced());
     // manually setting forced should result in a force
     $this->fixture->setForced(true);
     $this->assertEquals(true, $this->fixture->isForced());
     $this->fixture->setForced(false);
     $this->assertEquals(false, $this->fixture->isForced());
 }
Exemplo n.º 2
0
 /**
  * Execute the task
  *
  * @return Docblox
  * @throw BuildException
  */
 public function execute()
 {
     if (!class_exists('Parser')) {
         if (!$this->getLibraryPath()) {
             throw new BuildException('No Docblox library path set');
         }
         $libraryPath = $this->filterProperties($this->getLibraryPath());
         set_include_path(get_include_path() . PATH_SEPARATOR . $libraryPath);
         require_once 'markdown.php';
         $autoloader = new StandardAutoloader();
         $autoloader->registerPrefix('Zend', "{$libraryPath}/Zend")->registerPrefix('DocBlox', "{$libraryPath}/DocBlox")->setFallbackAutoloader(true)->register();
     }
     $parser = new Parser();
     ParserAbstract::$event_dispatcher = new sfEventDispatcher();
     if ($this->getForce()) {
         $parser->setForced($this->getForce());
     }
     if ($this->getMarkers()) {
         $parser->setMarkers($this->getMarkers());
     }
     if ($this->getTitle()) {
         $parser->setTitle($this->filterProperties($this->getTitle()));
     }
     if ($this->getValidate()) {
         $parser->setValidate($this->getValidate());
     }
     $files = new Files();
     foreach ($this->getFiles() as $file) {
         $files->addFile($this->filterProperties($file));
     }
     $xml = $parser->parseFiles($files);
     $transformer = new Transformer();
     $transformer->setSource($xml);
     if ($this->getParsePrivate()) {
         $transformer->setParseprivate($this->getParsePrivate());
     }
     if ($this->getTarget()) {
         $transformer->setTarget($this->filterProperties($this->getTarget()));
     }
     if ($this->getThemesPath()) {
         $transformer->setThemesPath($this->filterProperties($this->getThemesPath()));
     } else {
         $transformer->setThemesPath(CoreAbstract::config()->paths->themes);
     }
     if ($this->getTemplates()) {
         $transformer->setTemplates($this->getTemplates());
     } else {
         $transformer->setTemplates(CoreAbstract::config()->transformations->template->name);
     }
     $transformer->execute();
     return $this;
 }
Exemplo n.º 3
0
  if (count($opts->getFiles()) < 1)
  {
    throw new Zend_Console_Getopt_Exception('No parsable files were found, did you specify any using the -f or -d parameter?');
  }

} catch (Zend_Console_Getopt_Exception $e)
{
  // if the message actually contains anything, show it.
  if ($e->getMessage())
  {
    echo $e->getMessage() . PHP_EOL . PHP_EOL;
  }

  // show help message and exit the application
  echo $opts->getUsageMessage();
  exit;
}

// initialize the parser and pass the options as provided by the user or defaults
$docblox = new DocBlox_Parser();
$docblox->setLogLevel($opts->getOption('verbose') ? Zend_Log::DEBUG : $docblox->getLogLevel());
$docblox->setExistingXml(is_readable($path.'/structure.xml') ? file_get_contents($path.'/structure.xml') : null);
$docblox->setIgnorePatterns($opts->getIgnorePatterns());
$docblox->setForced($opts->getOption('force'));
$docblox->setMarkers($opts->getMarkers());
$docblox->setValidate($opts->getOption('validate'));

// save the generate file to the path given as the 'target' option
file_put_contents($path.'/structure.xml', $docblox->parseFiles($opts->getFiles()));
Exemplo n.º 4
0
 /**
  * Execute the parsing process.
  *
  * @throws Zend_Console_Getopt_Exception
  *
  * @return void
  */
 public function execute()
 {
     $files = $this->parseFiles();
     if (count($files) < 1) {
         throw new Zend_Console_Getopt_Exception('No parsable files were found, did you specify any using the -f or -d parameter?');
     }
     $parser = new DocBlox_Parser();
     $parser->setTitle(htmlentities($this->getTitle()));
     if ($this->getVerbose()) {
         $parser->setLogLevel(DocBlox_Core_Log::DEBUG);
     }
     if ($this->getQuiet()) {
         $parser->setLogLevel(DocBlox_Core_Log::QUIET);
     }
     $parser->setExistingXml($this->getTarget() . '/structure.xml');
     $parser->setIgnorePatterns($this->getIgnore());
     $parser->setForced($this->getForce());
     $parser->setMarkers($this->getMarkers());
     $parser->setValidate($this->getValidate());
     $parser->setPath($parser->getCommonPath($files));
     // save the generate file to the path given as the 'target' option
     file_put_contents($this->getTarget() . '/structure.xml', $parser->parseFiles($files));
 }
Exemplo n.º 5
0
 /**
  * Execute the parsing process.
  *
  * @throws Zend_Console_Getopt_Exception
  *
  * @return void
  */
 public function execute()
 {
     $files = new DocBlox_Parser_Files();
     $files->setAllowedExtensions($this->getExtensions());
     $files->setIgnorePatterns($this->getIgnore());
     $paths = array_unique($this->getFilename() ? explode(',', $this->getFilename()) : DocBlox_Core_Abstract::config()->getArrayFromPath('files/file'));
     $files->addFiles($paths);
     $paths = array_unique($this->getDirectory() || !empty($paths) ? explode(',', $this->getDirectory()) : DocBlox_Core_Abstract::config()->getArrayFromPath('files/directory'));
     $files->addDirectories($paths);
     $parser = new DocBlox_Parser();
     $parser->setTitle(htmlentities($this->getTitle()));
     $parser->setExistingXml($this->getTarget() . '/structure.xml');
     $parser->setForced($this->getForce());
     $parser->setMarkers($this->getMarkers());
     $parser->setValidate($this->getValidate());
     $parser->setVisibility($this->getVisibility());
     $parser->setDefaultPackageName($this->getDefaultpackagename());
     $parser->setPath($files->getProjectRoot());
     try {
         // save the generate file to the path given as the 'target' option
         file_put_contents($this->getTarget() . '/structure.xml', $parser->parseFiles($files));
     } catch (Exception $e) {
         if ($e->getCode() === DocBlox_Parser_Exception::NO_FILES_FOUND) {
             throw new Zend_Console_Getopt_Exception('No parsable files were found, did you specify any using the -f or -d parameter?');
         }
         throw new Zend_Console_Getopt_Exception($e->getMessage());
     }
 }