From 38c9f80ebb961f0a4c723aa9cb644ed5f08d0c1d Mon Sep 17 00:00:00 2001
From: Perreal Guillaume <guillaume.perreal@irstea.fr>
Date: Fri, 19 Apr 2019 11:52:35 +0200
Subject: [PATCH] =?UTF-8?q?Permet=20de=20surcharger=20ponctuellement=20des?=
 =?UTF-8?q?=20r=C3=A8gles=20avec=20->setRule=20et=20->setRules.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/Config.php | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/src/Config.php b/src/Config.php
index e445a9c..dbbb8d3 100644
--- a/src/Config.php
+++ b/src/Config.php
@@ -41,6 +41,9 @@ final class Config extends PhpCsFixerConfig
      */
     private $docHeaderfile = '.docheader';
 
+    /** @var array<string, mixed> */
+    private $ruleOverrides = [];
+
     /**
      * Set cacheFile.
      *
@@ -66,7 +69,7 @@ final class Config extends PhpCsFixerConfig
      */
     public function getRules()
     {
-        return array_merge(
+        return array_replace(
             $this->ruleSets(),
             [
                 // Configuration && overrides
@@ -100,10 +103,28 @@ final class Config extends PhpCsFixerConfig
                 // Risky
                 'is_null'                                   => ['use_yoda_style' => false],
                 'non_printable_character'                   => ['use_escape_sequences_in_strings' => true],
-            ] : []
+            ] : [],
+            $this->ruleOverrides
         );
     }
 
+    /**
+     * @param string $rule
+     * @param mixed $setting
+     */
+    public function setRule(string $rule, $setting)
+    {
+        $this->ruleOverrides[$rule] = $setting;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function setRules(array $rules)
+    {
+        $this->ruleOverrides = array_replace($this->ruleOverrides, $rules);
+    }
+
     /**
      * @return string
      */
-- 
GitLab