public function testSettingServices()
 {
     $logger = new Mustache_Logger_StreamLogger(tmpfile());
     $loader = new Mustache_Loader_StringLoader();
     $tokenizer = new Mustache_Tokenizer();
     $parser = new Mustache_Parser();
     $compiler = new Mustache_Compiler();
     $mustache = new Mustache_Engine();
     $cache = new Mustache_Cache_FilesystemCache(self::$tempDir);
     $this->assertNotSame($logger, $mustache->getLogger());
     $mustache->setLogger($logger);
     $this->assertSame($logger, $mustache->getLogger());
     $this->assertNotSame($loader, $mustache->getLoader());
     $mustache->setLoader($loader);
     $this->assertSame($loader, $mustache->getLoader());
     $this->assertNotSame($loader, $mustache->getPartialsLoader());
     $mustache->setPartialsLoader($loader);
     $this->assertSame($loader, $mustache->getPartialsLoader());
     $this->assertNotSame($tokenizer, $mustache->getTokenizer());
     $mustache->setTokenizer($tokenizer);
     $this->assertSame($tokenizer, $mustache->getTokenizer());
     $this->assertNotSame($parser, $mustache->getParser());
     $mustache->setParser($parser);
     $this->assertSame($parser, $mustache->getParser());
     $this->assertNotSame($compiler, $mustache->getCompiler());
     $mustache->setCompiler($compiler);
     $this->assertSame($compiler, $mustache->getCompiler());
     $this->assertNotSame($cache, $mustache->getCache());
     $mustache->setCache($cache);
     $this->assertSame($cache, $mustache->getCache());
 }
 /**
  * @return Mustache_Engine
  */
 private function get_mustache_engine()
 {
     if (is_null($this->mustache_engine)) {
         $this->get_loader()->load(FCA_FBC_Loader::LIB_MUSTACHE, 'php');
         $loader = new Mustache_Loader_FilesystemLoader(dirname(__FILE__) . '/Template');
         $this->mustache_engine = new Mustache_Engine();
         $this->mustache_engine->setLoader($loader);
         $this->mustache_engine->setPartialsLoader($loader);
     }
     return $this->mustache_engine;
 }
 public function parse_string($template, $data = array(), $return = FALSE, $config = array())
 {
     if (!is_array($config)) {
         $config = array();
     }
     $config = array_merge($this->config, $config);
     if (!is_array($data)) {
         $data = array();
     }
     $ci = $this->ci;
     $is_mx = false;
     if (!$return) {
         list($ci, $is_mx) = $this->detect_mx();
     }
     $parser = new Mustache_Engine($config);
     $parser->setLoader(new Mustache_Loader_StringLoader());
     $template = $parser->render($template, $data);
     return $this->output($template, $return, $ci, $is_mx);
 }
 public function testSettingServices()
 {
     $loader = new Mustache_Loader_StringLoader();
     $tokenizer = new Mustache_Tokenizer();
     $parser = new Mustache_Parser();
     $compiler = new Mustache_Compiler();
     $mustache = new Mustache_Engine();
     $this->assertNotSame($loader, $mustache->getLoader());
     $mustache->setLoader($loader);
     $this->assertSame($loader, $mustache->getLoader());
     $this->assertNotSame($loader, $mustache->getPartialsLoader());
     $mustache->setPartialsLoader($loader);
     $this->assertSame($loader, $mustache->getPartialsLoader());
     $this->assertNotSame($tokenizer, $mustache->getTokenizer());
     $mustache->setTokenizer($tokenizer);
     $this->assertSame($tokenizer, $mustache->getTokenizer());
     $this->assertNotSame($parser, $mustache->getParser());
     $mustache->setParser($parser);
     $this->assertSame($parser, $mustache->getParser());
     $this->assertNotSame($compiler, $mustache->getCompiler());
     $mustache->setCompiler($compiler);
     $this->assertSame($compiler, $mustache->getCompiler());
 }
 public function parse_string($template, $data = array(), $return = FALSE, $options = array())
 {
     if (!is_array($options)) {
         $options = array();
     }
     $options = array_merge($this->config, $options);
     if (!isset($options['charset']) || trim($options['charset']) == '') {
         $options['charset'] = $this->ci->config->item('charset');
     }
     $options['charset'] = strtoupper($options['charset']);
     if (is_object($data)) {
         $data = get_object_vars($data);
     }
     if (!is_array($data)) {
         $data = array();
     }
     $ci = $this->ci;
     $is_mx = false;
     if (!$return) {
         list($ci, $is_mx) = $this->detect_mx();
     }
     $parser = new Mustache_Engine($options);
     $parser->setLoader(new Mustache_Loader_StringLoader());
     $template = $parser->render($template, $data);
     return $this->output($template, $return, $ci, $is_mx);
 }