Version 1
[yaffs-website] / vendor / twig / twig / lib / Twig / Node / Expression / Binary / EndsWith.php
diff --git a/vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php b/vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php
new file mode 100644 (file)
index 0000000..c24b720
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+class Twig_Node_Expression_Binary_EndsWith extends Twig_Node_Expression_Binary
+{
+    public function compile(Twig_Compiler $compiler)
+    {
+        $left = $compiler->getVarName();
+        $right = $compiler->getVarName();
+        $compiler
+            ->raw(sprintf('(is_string($%s = ', $left))
+            ->subcompile($this->getNode('left'))
+            ->raw(sprintf(') && is_string($%s = ', $right))
+            ->subcompile($this->getNode('right'))
+            ->raw(sprintf(') && (\'\' === $%2$s || $%2$s === substr($%1$s, -strlen($%2$s))))', $left, $right))
+        ;
+    }
+
+    public function operator(Twig_Compiler $compiler)
+    {
+        return $compiler->raw('');
+    }
+}