function get($extension) { $extension = Template::normalizeExtension($extension); if (empty($this->engines[$extension])) { return; } return $this->engines[$extension]; }
function __construct($root = null) { $this->root = $root; $this->loadPaths = new FileUtils\PathStack($this->root); $this->engines = Template::getEngines(); # Enable resolving logical paths without extension. $this->loadPaths->appendExtensions(array_keys($this->engines->getEngines())); $this->loadPaths->appendExtensions(array_keys($this->contentTypes)); $this->preProcessors = new ProcessorRegistry(); $this->postProcessors = new ProcessorRegistry(); $this->bundleProcessors = new ProcessorRegistry(); $this->registerEngine('\\Pipe\\JstProcessor', '.jst'); # Override Mustache compiler with more useful Mustache to JS compiler, # which is usable with the JST processor $this->registerEngine('\\MetaTemplate\\Template\\MustacheJsTemplate', '.mustache'); # Register default processors $this->registerPreProcessor('text/css', '\\Pipe\\ImportProcessor'); $this->registerPreProcessor('text/css', '\\Pipe\\DirectiveProcessor'); $this->registerPreProcessor('application/javascript', '\\Pipe\\DirectiveProcessor'); $this->registerPostProcessor('application/javascript', '\\Pipe\\SafetyColons'); }
function testReturnsNullIfExtensionHasNoEngine() { $this->assertNull(Template::get('foo.erb')); }
function testExtensionRegistered() { $templ = \MetaTemplate\Template::create(__DIR__ . '/fixtures/jsonbuilder/test.jsonbuilder'); $this->assertInstanceOf('\\MetaTemplate\\Template\\JSONBuilderTemplate', $templ); }
* @return \MetaTemplate\Template\Base */ static function create($source, $options = array(), $callback = null) { return static::getEngines()->create($source, $options, $callback); } /** * Registers an engine with an file extension * * @param string $engine The Engine Class * @param string|array $extension One ore more extensions * @return void */ static function register($engine, $extension) { static::getEngines()->register($engine, $extension); } static function normalizeExtension($extension) { return Path::normalizeExtension($extension); } static function setupDefaultEngines() { $defaultEngines = array('PhpTemplate' => array('php', 'phtml'), 'LessTemplate' => array('less'), 'MarkdownTemplate' => array('md', 'markdown'), 'SassTemplate' => array('scss', 'sass'), 'CoffeeScriptTemplate' => array('coffee'), 'TwigTemplate' => array('twig'), 'JSONBuilderTemplate' => array('jsonbuilder'), 'TypeScriptTemplate' => array('.ts')); foreach ($defaultEngines as $engine => $extensions) { static::register("\\MetaTemplate\\Template\\{$engine}", $extensions); } } } Template::setupDefaultEngines();