Mercurial > hg > cmmr2012-drupal-site
diff vendor/chi-teck/drupal-code-generator/src/Twig/TwigEnvironment.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children | a9cd425dd02b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/chi-teck/drupal-code-generator/src/Twig/TwigEnvironment.php Thu Jul 05 14:24:15 2018 +0000 @@ -0,0 +1,69 @@ +<?php + +namespace DrupalCodeGenerator\Twig; + +use DrupalCodeGenerator\Utils; +use Twig_Environment; +use Twig_LoaderInterface; +use Twig_SimpleFilter; + +/** + * Stores the Twig configuration. + */ +class TwigEnvironment extends Twig_Environment { + + /** + * Constructs Twig environment object. + * + * @param \Twig_LoaderInterface $loader + * The Twig loader. + */ + 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'; + + case 's': + return $string . 'es'; + + default: + return $string . 's'; + } + })); + + $this->addFilter(new Twig_SimpleFilter('article', function ($string) { + $article = in_array(strtolower($string[0]), ['a', 'e', 'i', 'o', 'u']) ? 'an' : 'a'; + return $article . ' ' . $string; + })); + + $this->addFilter(new Twig_SimpleFilter('underscore2hyphen', function ($string) { + // @codeCoverageIgnoreStart + return str_replace('_', '-', $string); + // @codeCoverageIgnoreEnd + }, ['deprecated' => TRUE])); + + $this->addFilter(new Twig_SimpleFilter('hyphen2underscore', function ($string) { + // @codeCoverageIgnoreStart + return str_replace('-', '_', $string); + // @codeCoverageIgnoreEnd + }, ['deprecated' => TRUE])); + + $this->addFilter(new Twig_SimpleFilter('u2h', function ($string) { + return str_replace('_', '-', $string); + })); + + $this->addFilter(new Twig_SimpleFilter('h2u', function ($string) { + return str_replace('-', '_', $string); + })); + + $this->addFilter(new Twig_SimpleFilter('camelize', function ($string, $upper_mode = TRUE) { + return Utils::camelize($string, $upper_mode); + })); + + $this->addTokenParser(new TwigSortTokenParser()); + } + +}