First value in the pipe should be interpolated first.
This commit is contained in:
@@ -264,12 +264,12 @@ class Mustache_Compiler
|
||||
}
|
||||
|
||||
const VARIABLE = '
|
||||
$value = $context->%s(%s);%s
|
||||
$value = $context->%s(%s);
|
||||
if (!is_string($value) && is_callable($value)) {
|
||||
$value = $this->mustache
|
||||
->loadLambda((string) call_user_func($value))
|
||||
->renderInternal($context, $indent);
|
||||
}
|
||||
}%s
|
||||
$buffer .= %s%s;
|
||||
';
|
||||
|
||||
|
||||
@@ -72,4 +72,14 @@ class Mustache_Test_FiveThree_Functional_FiltersTest extends PHPUnit_Framework_T
|
||||
'baz' => function($value) { return 'BAZ'; },
|
||||
)));
|
||||
}
|
||||
|
||||
public function testInterpolateFirst() {
|
||||
$tpl = $this->mustache->loadTemplate('{{% FILTERS }}{{ foo | bar }}');
|
||||
$this->assertEquals('win!', $tpl->render(array(
|
||||
'foo' => 'FOO',
|
||||
'bar' => function($value) {
|
||||
return ($value === 'FOO') ? 'win!' : 'fail :(';
|
||||
},
|
||||
)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user