<?xml version="1.0"?>
<ruleset name="phpList">
    <description>
        PHPMD rules for Emogrifier
    </description>

    <!-- The commented-out rules will be enabled once the code does not generate any warnings anymore. -->

    <rule ref="rulesets/cleancode.xml/BooleanArgumentFlag"/>
    <rule ref="rulesets/cleancode.xml/StaticAccess">
        <properties>
            <!-- Avoid false positives when calling factory methods -->
            <property name="ignorepattern" value="/^from/" />
        </properties>
    </rule>

    <rule ref="rulesets/codesize.xml/CyclomaticComplexity"/>
    <rule ref="rulesets/codesize.xml/NPathComplexity"/>
    <rule ref="rulesets/codesize.xml/ExcessiveMethodLength"/>
    <!--<rule ref="rulesets/codesize.xml/ExcessiveClassLength"/>-->
    <rule ref="rulesets/codesize.xml/ExcessiveParameterList"/>
    <rule ref="rulesets/codesize.xml/ExcessivePublicCount"/>
    <rule ref="rulesets/codesize.xml/TooManyFields"/>
    <!--<rule ref="rulesets/codesize.xml/TooManyMethods"/>-->
    <rule ref="rulesets/codesize.xml/TooManyPublicMethods"/>
    <!--<rule ref="rulesets/codesize.xml/ExcessiveClassComplexity"/>-->

    <rule ref="rulesets/controversial.xml/Superglobals"/>
    <rule ref="rulesets/controversial.xml/CamelCaseClassName"/>
    <rule ref="rulesets/controversial.xml/CamelCasePropertyName"/>
    <rule ref="rulesets/controversial.xml/CamelCaseMethodName"/>
    <rule ref="rulesets/controversial.xml/CamelCaseParameterName"/>
    <rule ref="rulesets/controversial.xml/CamelCaseVariableName"/>

    <rule ref="rulesets/design.xml/ExitExpression"/>
    <rule ref="rulesets/design.xml/EvalExpression"/>
    <rule ref="rulesets/design.xml/GotoStatement"/>
    <rule ref="rulesets/design.xml/NumberOfChildren"/>
    <rule ref="rulesets/design.xml/DepthOfInheritance"/>
    <rule ref="rulesets/design.xml/CouplingBetweenObjects"/>
    <rule ref="rulesets/design.xml/DevelopmentCodeFragment"/>

    <rule ref="rulesets/naming.xml/ShortVariable"/>
    <rule ref="rulesets/naming.xml/ShortMethodName"/>
    <rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass"/>
    <rule ref="rulesets/naming.xml/ConstantNamingConventions"/>
    <rule ref="rulesets/naming.xml/BooleanGetMethodName"/>

    <rule ref="rulesets/unusedcode.xml/UnusedPrivateField"/>
    <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable"/>
    <rule ref="rulesets/unusedcode.xml/UnusedFormalParameter"/>
</ruleset>
