Jelajahi Sumber

Fix incorrect indent on interpolated lambdas.

Fixes #286
Justin Hileman 9 tahun lalu
induk
melakukan
f3ae65eb33

+ 1 - 1
src/Mustache/Compiler.php

@@ -498,7 +498,7 @@ class Mustache_Compiler
     }
 
     const VARIABLE = '
-        $value = $this->resolveValue($context->%s(%s), $context, $indent);%s
+        $value = $this->resolveValue($context->%s(%s), $context);%s
         $buffer .= %s%s;
     ';
 

+ 2 - 3
src/Mustache/Template.php

@@ -164,16 +164,15 @@ abstract class Mustache_Template
      *
      * @param mixed            $value
      * @param Mustache_Context $context
-     * @param string           $indent
      *
      * @return string
      */
-    protected function resolveValue($value, Mustache_Context $context, $indent = '')
+    protected function resolveValue($value, Mustache_Context $context)
     {
         if (($this->strictCallables ? is_object($value) : !is_string($value)) && is_callable($value)) {
             return $this->mustache
                 ->loadLambda((string) call_user_func($value))
-                ->renderInternal($context, $indent);
+                ->renderInternal($context);
         }
 
         return $value;

+ 5 - 5
test/Mustache/Test/CompilerTest.php

@@ -55,7 +55,7 @@ class Mustache_Test_CompilerTest extends PHPUnit_Framework_TestCase
                 'ISO-8859-1',
                 array(
                     "\nclass Monkey extends Mustache_Template",
-                    '$value = $this->resolveValue($context->find(\'name\'), $context, $indent);',
+                    '$value = $this->resolveValue($context->find(\'name\'), $context);',
                     '$buffer .= $indent . call_user_func($this->mustache->getEscape(), $value);',
                     'return $buffer;',
                 ),
@@ -75,7 +75,7 @@ class Mustache_Test_CompilerTest extends PHPUnit_Framework_TestCase
                 'ISO-8859-1',
                 array(
                     "\nclass Monkey extends Mustache_Template",
-                    '$value = $this->resolveValue($context->find(\'name\'), $context, $indent);',
+                    '$value = $this->resolveValue($context->find(\'name\'), $context);',
                     '$buffer .= $indent . htmlspecialchars($value, ' . ENT_COMPAT . ', \'ISO-8859-1\');',
                     'return $buffer;',
                 ),
@@ -95,7 +95,7 @@ class Mustache_Test_CompilerTest extends PHPUnit_Framework_TestCase
                 'ISO-8859-1',
                 array(
                     "\nclass Monkey extends Mustache_Template",
-                    '$value = $this->resolveValue($context->find(\'name\'), $context, $indent);',
+                    '$value = $this->resolveValue($context->find(\'name\'), $context);',
                     '$buffer .= $indent . htmlspecialchars($value, ' . ENT_QUOTES . ', \'ISO-8859-1\');',
                     'return $buffer;',
                 ),
@@ -122,9 +122,9 @@ class Mustache_Test_CompilerTest extends PHPUnit_Framework_TestCase
                 array(
                     "\nclass Monkey extends Mustache_Template",
                     "\$buffer .= \$indent . 'foo\n';",
-                    '$value = $this->resolveValue($context->find(\'name\'), $context, $indent);',
+                    '$value = $this->resolveValue($context->find(\'name\'), $context);',
                     '$buffer .= htmlspecialchars($value, ' . ENT_COMPAT . ', \'UTF-8\');',
-                    '$value = $this->resolveValue($context->last(), $context, $indent);',
+                    '$value = $this->resolveValue($context->last(), $context);',
                     '$buffer .= \'\\\'bar\\\'\';',
                     'return $buffer;',
                 ),