public function loadRules()

in src/Facebook/InstantArticles/Transformer/Transformer.php [450:493]


    public function loadRules($json_file)
    {
        $configuration = $this->validateJSON($json_file);

        // Treats the Rules configuration
        if ($configuration && isset($configuration['rules'])) {
            foreach ($configuration['rules'] as $configuration_rule) {
                $class = $configuration_rule['class'];
                try {
                    $factory_method = new \ReflectionMethod($class, 'createFrom');
                    $this->addRule($factory_method->invoke(null, $configuration_rule));
                } catch (\ReflectionException $e) {
                    try {
                        $factory_method = new \ReflectionMethod(
                            'Facebook\\InstantArticles\\Transformer\\Rules\\' . $class,
                            'createFrom'
                        );
                        $this->addRule($factory_method->invoke(null, $configuration_rule));
                    } catch (\ReflectionException $e) {
                        $this->addWarning("$class was not found");
                        $this->addLog(
                            TransformerLog::ERROR,
                            "$class was not found"
                        );
                    }
                }
            }
        }

        // Treats the ADS configuration
        if ($configuration && isset($configuration['ads'])) {
            $this->loadAdsConfiguration($configuration['ads']);
        }

        // Treats the Analyticds configuration
        if ($configuration && isset($configuration['analytics'])) {
            $this->loadAnalyicsConfiguration($configuration['analytics']);
        }

        // Treats the Style configuration
        if ($configuration && isset($configuration['style_name'])) {
            $this->setDefaultStyleName($configuration['style_name']);
        }
    }