Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / vendor / chi-teck / drupal-code-generator / src / Twig / TwigEnvironment.php
index fb3bfedce2c985aa450fed07daa96fefc6b4aa21..03e14fc2d7e80118eee7d189132ed161040326a0 100644 (file)
@@ -21,18 +21,9 @@ class TwigEnvironment extends Twig_Environment {
   public function __construct(Twig_LoaderInterface $loader) {
     parent::__construct($loader);
 
-    $this->addFilter(new Twig_SimpleFilter('plural', function ($string) {
-      switch (substr($string, -1)) {
-        case 'y':
-          return substr($string, 0, -1) . 'ies';
+    $this->addFilter(new Twig_SimpleFilter('plural', [Utils::class, 'pluralize']), ['deprecated' => TRUE]);
 
-        case 's':
-          return $string . 'es';
-
-        default:
-          return $string . 's';
-      }
-    }));
+    $this->addFilter(new Twig_SimpleFilter('pluralize', [Utils::class, 'pluralize']));
 
     $this->addFilter(new Twig_SimpleFilter('article', function ($string) {
       $article = in_array(strtolower($string[0]), ['a', 'e', 'i', 'o', 'u']) ? 'an' : 'a';
@@ -66,4 +57,22 @@ class TwigEnvironment extends Twig_Environment {
     $this->addTokenParser(new TwigSortTokenParser());
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function tokenize($source, $name = NULL) {
+    if (!$source instanceof \Twig_Source) {
+      $source = new \Twig_Source($source, $name);
+    }
+    // Remove leading whitespaces to preserve indentation.
+    // @see https://github.com/twigphp/Twig/issues/1423
+    $code = $source->getCode();
+    if (strpos($code, '{% verbatim %}') === FALSE) {
+      $code = preg_replace("/\n +\{%/", "\n{%", $source->getCode());
+    }
+    // Twig source has no setters.
+    $source = new \Twig_Source($code, $source->getName(), $source->getPath());
+    return parent::tokenize($source, $name);
+  }
+
 }