public function testSecondFilterOverwritesFirst()
 {
     $var = new Variable('var | money ');
     $this->context->set('var', 1000);
     $this->context->addFilters(new MoneyFilter(), 'money');
     $this->context->addFilters(new CanadianMoneyFilter(), 'money');
     $this->assertEquals(' 1000$ CAD ', $var->render($this->context));
 }
Example #2
0
 /**
  * Renders the current template
  *
  * @param array $assigns an array of values for the template
  * @param array $filters additional filters for the template
  * @param array $registers additional registers for the template
  *
  * @return string
  */
 public function render(array $assigns = array(), $filters = null, array $registers = array())
 {
     $context = new Context($assigns, $registers);
     if (!is_null($filters)) {
         if (is_array($filters)) {
             $this->filters = array_merge($this->filters, $filters);
         } else {
             $this->filters[] = $filters;
         }
     }
     foreach ($this->filters as $filter) {
         $context->addFilters($filter);
     }
     return $this->root->render($context);
 }
Example #3
0
 public function testAddFilter()
 {
     $context = new Context();
     $context->addFilters(new HiFilter());
     $this->assertEquals('hi? hi!', $context->invoke('hi', 'hi?'));
     $context = new Context();
     $this->assertEquals('hi?', $context->invoke('hi', 'hi?'));
     $context->addFilters(new HiFilter());
     $this->assertEquals('hi? hi!', $context->invoke('hi', 'hi?'));
 }