Skip to content

Commit

Permalink
Refactored @inheritdoc handling from docblock child element to attribute
Browse files Browse the repository at this point in the history
  • Loading branch information
theseer committed Mar 23, 2014
1 parent 757adcb commit 6f6b5f3
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/docblock/Factory.php
Expand Up @@ -51,10 +51,12 @@ class Factory implements FactoryInterface {
'throws' => 'TheSeer\\phpDox\\DocBlock\\VarParser',
'license' => 'TheSeer\\phpDox\\DocBlock\\LicenseParser',

'internal' => 'TheSeer\\phpDox\\DocBlock\\InternalParser'
'internal' => 'TheSeer\\phpDox\\DocBlock\\InternalParser',
'inheritdoc' => 'TheSeer\\phpDox\\DocBlock\\InheritdocParser'
);

protected $elementMap = array(
'inheritdoc' => 'TheSeer\\phpDox\\DocBlock\\InheritdocAttribute',
'invalid' => 'TheSeer\\phpDox\\DocBlock\\InvalidElement',
'generic' => 'TheSeer\\phpDox\\DocBlock\\GenericElement',
'var' => 'TheSeer\\phpDox\\DocBlock\\VarElement'
Expand Down Expand Up @@ -160,4 +162,4 @@ class FactoryException extends \Exception {
const UnknownType = 3;
}

}
}
50 changes: 50 additions & 0 deletions src/docblock/InheritdocAttribute.php
@@ -0,0 +1,50 @@
<?php
/**
* Copyright (c) 2010-2014 Arne Blankerts <arne@blankerts.de>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of Arne Blankerts nor the names of contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT * NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER ORCONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package phpDox
* @author Arne Blankerts <arne@blankerts.de>
* @copyright Arne Blankerts <arne@blankerts.de>, All rights reserved.
* @license BSD License
*/

namespace TheSeer\phpDox\DocBlock {

class InheritdocAttribute extends GenericElement {

public function asDom(\TheSeer\fDOM\fDOMDocument $ctx) {
$node = $ctx->createAttribute('inherit');
$node->appendChild($ctx->createTextNode('true'));
return $node;
}

}

}
48 changes: 48 additions & 0 deletions src/docblock/parser/InheritdocParser.php
@@ -0,0 +1,48 @@
<?php
/**
* Copyright (c) 2010-2014 Arne Blankerts <arne@blankerts.de>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of Arne Blankerts nor the names of contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT * NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER ORCONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package phpDox
* @author Arne Blankerts <arne@blankerts.de>
* @copyright Arne Blankerts <arne@blankerts.de>, All rights reserved.
* @license BSD License
*/

namespace TheSeer\phpDox\DocBlock {

class InheritdocParser extends GenericParser {

public function getObject(array $buffer) {
return $this->buildObject('inheritdoc', $buffer);
}

}

}

0 comments on commit 6f6b5f3

Please sign in to comment.