Fix incorrect indent on interpolated lambdas.

Fixes #286
This commit is contained in:
Justin Hileman
2016-02-14 08:37:41 -08:00
parent 131cad6024
commit f3ae65eb33
3 changed files with 8 additions and 9 deletions
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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;',
),