annotate 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
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace DrupalCodeGenerator\Twig;
Chris@0 4
Chris@0 5 use DrupalCodeGenerator\Utils;
Chris@0 6 use Twig_Environment;
Chris@0 7 use Twig_LoaderInterface;
Chris@0 8 use Twig_SimpleFilter;
Chris@0 9
Chris@0 10 /**
Chris@0 11 * Stores the Twig configuration.
Chris@0 12 */
Chris@0 13 class TwigEnvironment extends Twig_Environment {
Chris@0 14
Chris@0 15 /**
Chris@0 16 * Constructs Twig environment object.
Chris@0 17 *
Chris@0 18 * @param \Twig_LoaderInterface $loader
Chris@0 19 * The Twig loader.
Chris@0 20 */
Chris@0 21 public function __construct(Twig_LoaderInterface $loader) {
Chris@0 22 parent::__construct($loader);
Chris@0 23
Chris@0 24 $this->addFilter(new Twig_SimpleFilter('plural', function ($string) {
Chris@0 25 switch (substr($string, -1)) {
Chris@0 26 case 'y':
Chris@0 27 return substr($string, 0, -1) . 'ies';
Chris@0 28
Chris@0 29 case 's':
Chris@0 30 return $string . 'es';
Chris@0 31
Chris@0 32 default:
Chris@0 33 return $string . 's';
Chris@0 34 }
Chris@0 35 }));
Chris@0 36
Chris@0 37 $this->addFilter(new Twig_SimpleFilter('article', function ($string) {
Chris@0 38 $article = in_array(strtolower($string[0]), ['a', 'e', 'i', 'o', 'u']) ? 'an' : 'a';
Chris@0 39 return $article . ' ' . $string;
Chris@0 40 }));
Chris@0 41
Chris@0 42 $this->addFilter(new Twig_SimpleFilter('underscore2hyphen', function ($string) {
Chris@0 43 // @codeCoverageIgnoreStart
Chris@0 44 return str_replace('_', '-', $string);
Chris@0 45 // @codeCoverageIgnoreEnd
Chris@0 46 }, ['deprecated' => TRUE]));
Chris@0 47
Chris@0 48 $this->addFilter(new Twig_SimpleFilter('hyphen2underscore', function ($string) {
Chris@0 49 // @codeCoverageIgnoreStart
Chris@0 50 return str_replace('-', '_', $string);
Chris@0 51 // @codeCoverageIgnoreEnd
Chris@0 52 }, ['deprecated' => TRUE]));
Chris@0 53
Chris@0 54 $this->addFilter(new Twig_SimpleFilter('u2h', function ($string) {
Chris@0 55 return str_replace('_', '-', $string);
Chris@0 56 }));
Chris@0 57
Chris@0 58 $this->addFilter(new Twig_SimpleFilter('h2u', function ($string) {
Chris@0 59 return str_replace('-', '_', $string);
Chris@0 60 }));
Chris@0 61
Chris@0 62 $this->addFilter(new Twig_SimpleFilter('camelize', function ($string, $upper_mode = TRUE) {
Chris@0 63 return Utils::camelize($string, $upper_mode);
Chris@0 64 }));
Chris@0 65
Chris@0 66 $this->addTokenParser(new TwigSortTokenParser());
Chris@0 67 }
Chris@0 68
Chris@0 69 }