Class/Object

org.fusesource.scalate

TemplateEngine

Related Docs: object TemplateEngine | package scalate

Permalink

class TemplateEngine extends AnyRef

A TemplateEngine is used to compile and load Scalate templates. The TemplateEngine takes care of setting up the Scala compiler and caching compiled templates for quicker subsequent loads of a requested template.

The TemplateEngine uses a workingDirectory to store the generated scala source code and the bytecode. By default this uses a dynamically generated directory. You can configure this yourself to use whatever directory you wish. Or you can use the scalate.workdir system property to specify the workingDirectory

Source
TemplateEngine.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. TemplateEngine
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new TemplateEngine(sourceDirectories: Iterable[File] = None, mode: String = ...)

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from TemplateEngine to any2stringadd[TemplateEngine] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (TemplateEngine, B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from TemplateEngine to ArrowAssoc[TemplateEngine] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  6. var allowCaching: Boolean

    Permalink

    Set to false if you don't want the template engine to ever cache any of the compiled templates.

    Set to false if you don't want the template engine to ever cache any of the compiled templates.

    If not explicitly configured this property can be configured using the scalate.allowCaching system property

  7. var allowReload: Boolean

    Permalink

    If true, then the template engine will check to see if the template has been updated since last compiled so that it can be reloaded.

    If true, then the template engine will check to see if the template has been updated since last compiled so that it can be reloaded. Defaults to true. YOu should set to false in production environments since the templates should not be changing.

    If not explicitly configured this property can be configured using the scalate.allowReload system property

  8. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  9. var bindings: List[Binding]

    Permalink

    By default lets bind the context so we get to reuse its methods in a template

  10. def boot(): Unit

    Permalink
  11. var bootClassName: String

    Permalink
  12. var bootInjections: List[AnyRef]

    Permalink
  13. def buildSourceMap(stratumName: String, uri: String, scalaFile: File, positions: TreeMap[OffsetPosition, OffsetPosition]): String

    Permalink
    Attributes
    protected
  14. def bytecodeDirectory: File

    Permalink
  15. def cacheHits: Int

    Permalink

    The number of times a template load request was serviced from the cache.

  16. def cacheMisses: Int

    Permalink

    The number of times a template load request could not be serviced from the cache and was loaded from disk.

  17. def canLoad(uri: String, extraBindings: Iterable[Binding]): Boolean

    Permalink

    Returns true if the URI can be loaded as a template

  18. def canLoad(uri: String): Boolean

    Permalink

    Returns true if the URI can be loaded as a template

  19. def canLoad(source: TemplateSource, extraBindings: Iterable[Binding] = Nil): Boolean

    Permalink

    Returns true if the URI can be loaded as a template

  20. def classFileName(uri: String): File

    Permalink
    Attributes
    protected
  21. var classLoader: ClassLoader

    Permalink
  22. var classpath: String

    Permalink
  23. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. var codeGenerators: Map[String, CodeGenerator]

    Permalink

    The supported template engines and their default extensions

  25. var combinedClassPath: Boolean

    Permalink

    Whether a custom classpath should be combined with the deduced classpath

  26. def compile(source: TemplateSource, extraBindings: Iterable[Binding] = Nil): Template

    Permalink

    Compiles a template source without placing it in the template cache.

    Compiles a template source without placing it in the template cache. Useful for temporary templates or dynamically created template

  27. def compileMoustache(text: String, extraBindings: Iterable[Binding] = Nil): Template

    Permalink

    Compiles the given Moustache template text and returns the template

  28. def compileScaml(text: String, extraBindings: Iterable[Binding] = Nil): Template

    Permalink

    Compiles the given SSP template text and returns the template

  29. def compileSsp(text: String, extraBindings: Iterable[Binding] = Nil): Template

    Permalink

    Compiles the given SSP template text and returns the template

  30. def compileText(extension: String, text: String, extraBindings: Iterable[Binding] = Nil): Template

    Permalink

    Compiles the given text using the given extension (such as ssp or scaml for example to denote what parser to use) and return the template

  31. lazy val compiler: Compiler

    Permalink
  32. var compilerInitialized: Boolean

    Permalink
  33. def createCompiler: Compiler

    Permalink

    Factory method to create a compiler for this TemplateEngine.

    Factory method to create a compiler for this TemplateEngine. Override if you wish to contorl the compilation in a different way such as in side SBT or something.

    Attributes
    protected
  34. def createRenderContext(uri: String, out: PrintWriter): RenderContext

    Permalink

    Factory method used by the layout helper methods that should be overloaded by template engine implementations if they wish to customize the render context implementation

    Factory method used by the layout helper methods that should be overloaded by template engine implementations if they wish to customize the render context implementation

    Attributes
    protected
  35. def ensuring(cond: (TemplateEngine) ⇒ Boolean, msg: ⇒ Any): TemplateEngine

    Permalink
    Implicit information
    This member is added by an implicit conversion from TemplateEngine to Ensuring[TemplateEngine] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  36. def ensuring(cond: (TemplateEngine) ⇒ Boolean): TemplateEngine

    Permalink
    Implicit information
    This member is added by an implicit conversion from TemplateEngine to Ensuring[TemplateEngine] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  37. def ensuring(cond: Boolean, msg: ⇒ Any): TemplateEngine

    Permalink
    Implicit information
    This member is added by an implicit conversion from TemplateEngine to Ensuring[TemplateEngine] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  38. def ensuring(cond: Boolean): TemplateEngine

    Permalink
    Implicit information
    This member is added by an implicit conversion from TemplateEngine to Ensuring[TemplateEngine] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  39. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  40. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  41. var escapeMarkup: Boolean

    Permalink

    Whether or not markup sensitive characters for HTML/XML elements like & > < are escaped or not

  42. def expireAndCompile(source: TemplateSource, extraBindings: Iterable[Binding] = Nil): Unit

    Permalink

    Expire specific template source and then compile and cache again

  43. def extension(source: TemplateSource): Option[String]

    Permalink

    Extracts the extension from the source's uri though derived engines could override this behaviour to auto default missing extensions or performing custom mappings etc.

    Extracts the extension from the source's uri though derived engines could override this behaviour to auto default missing extensions or performing custom mappings etc.

    Attributes
    protected
  44. var extensionToTemplateExtension: Map[String, Set[String]]

    Permalink

    Maps file extensions to possible template extensions for custom mappins such as for Map("js" -> Set("coffee"), "css" => Set("sass", "scss"))

  45. def extensions: Set[String]

    Permalink

    Returns the file extensions understood by Scalate; all the template engines and pipelines including the wiki markup languages.

  46. def filter(name: String): Option[Filter]

    Permalink
  47. var filters: Map[String, Filter]

    Permalink
  48. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  49. val finderCache: ConcurrentHashMap[String, String]

    Permalink
  50. def formatted(fmtstr: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from TemplateEngine to StringFormat[TemplateEngine] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  51. def generateScala(uri: String): Code

    Permalink

    Generates the Scala code for a template.

    Generates the Scala code for a template. Useful for generating scala code that will then be compiled into the application as part of a build process.

  52. def generateScala(uri: String, extraBindings: Iterable[Binding]): Code

    Permalink

    Generates the Scala code for a template.

    Generates the Scala code for a template. Useful for generating scala code that will then be compiled into the application as part of a build process.

  53. def generateScala(source: TemplateSource, extraBindings: Iterable[Binding] = Nil): Code

    Permalink

    Generates the Scala code for a template.

    Generates the Scala code for a template. Useful for generating scala code that will then be compiled into the application as part of a build process.

  54. def generator(source: TemplateSource): CodeGenerator

    Permalink

    Gets the code generator to use for the give uri string by looking up the uri's extension in the the codeGenerators map.

    Gets the code generator to use for the give uri string by looking up the uri's extension in the the codeGenerators map.

    Attributes
    protected
  55. def generatorForExtension(extension: String): CodeGenerator

    Permalink

    Returns the code generator for the given file extension

    Returns the code generator for the given file extension

    Attributes
    protected
  56. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  57. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  58. var importStatements: List[String]

    Permalink

    Sets the import statements used in each generated template class

  59. def invalidateCachedTemplates(): Boolean

    Permalink

    Invalidates all cached Templates.

  60. def isDevelopmentMode: Boolean

    Permalink

    Returns true if this template engine is being used in development mode.

  61. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  62. def layout(source: TemplateSource, context: RenderContext): Unit

    Permalink

    Renders the given template source using the current layoutStrategy

  63. def layout(source: TemplateSource, context: RenderContext, extraBindings: Iterable[Binding]): Unit

    Permalink

    Renders the given template source using the current layoutStrategy

  64. def layout(source: TemplateSource, attributes: Map[String, Any]): String

    Permalink

    Renders the given template source using the current layoutStrategy

  65. def layout(source: TemplateSource): String

    Permalink

    Renders the given template source using the current layoutStrategy

  66. def layout(uri: String, template: Template): String

    Permalink
  67. def layout(uri: String, context: RenderContext): Unit

    Permalink
  68. def layout(uri: String, template: Template, attributes: Map[String, Any]): String

    Permalink

    Renders the given template returning the output

  69. def layout(uri: String, template: Template, out: PrintWriter, attributes: Map[String, Any]): Unit

    Permalink
    Attributes
    protected
  70. def layout(uri: String, out: PrintWriter, attributes: Map[String, Any]): Unit

    Permalink
  71. def layout(uri: String, attributes: Map[String, Any] = Map(), extraBindings: Iterable[Binding] = Nil): String

    Permalink

    Renders the given template URI returning the output

  72. def layout(template: Template, context: RenderContext): Unit

    Permalink

    Renders the given template using the current layoutStrategy

  73. def layout(uri: String, context: RenderContext, extraBindings: Iterable[Binding]): Unit

    Permalink

    Renders the given template URI using the current layoutStrategy

  74. def layoutAsNodes(uri: String, template: Template): NodeSeq

    Permalink
  75. def layoutAsNodes(uri: String, template: Template, attributes: Map[String, Any]): NodeSeq

    Permalink

    Renders the given template returning the output

  76. def layoutAsNodes(uri: String, attributes: Map[String, Any] = Map(), extraBindings: Iterable[Binding] = Nil): NodeSeq

    Permalink

    Renders the given template URI returning the output

  77. var layoutStrategy: LayoutStrategy

    Permalink
  78. def libraryDirectory: File

    Permalink
  79. def load(uri: String): Template

    Permalink

    Compiles and then caches the specified template.

    Compiles and then caches the specified template. If the template was previously cached, the previously compiled template instance is returned. The cache entry in invalidated and then template is re-compiled if the template file has been updated since it was last compiled.

  80. def load(uri: String, extraBindings: Iterable[Binding]): Template

    Permalink

    Compiles and then caches the specified template.

    Compiles and then caches the specified template. If the template was previously cached, the previously compiled template instance is returned. The cache entry in invalidated and then template is re-compiled if the template file has been updated since it was last compiled.

  81. def load(file: File): Template

    Permalink

    Compiles and then caches the specified template.

    Compiles and then caches the specified template. If the template was previously cached, the previously compiled template instance is returned. The cache entry in invalidated and then template is re-compiled if the template file has been updated since it was last compiled.

  82. def load(file: File, extraBindings: Iterable[Binding]): Template

    Permalink

    Compiles and then caches the specified template.

    Compiles and then caches the specified template. If the template was previously cached, the previously compiled template instance is returned. The cache entry in invalidated and then template is re-compiled if the template file has been updated since it was last compiled.

  83. def load(source: TemplateSource, extraBindings: Iterable[Binding] = Nil): Template

    Permalink

    Compiles and then caches the specified template.

    Compiles and then caches the specified template. If the template was previously cached, the previously compiled template instance is returned. The cache entry in invalidated and then template is re-compiled if the template file has been updated since it was last compiled.

  84. var mode: String

    Permalink
  85. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  86. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  87. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  88. var packagePrefix: String

    Permalink
  89. def pipeline(source: TemplateSource): Option[List[Filter]]

    Permalink

    Gets a pipeline to use for the give uri string by looking up the uri's extension in the the pipelines map.

    Gets a pipeline to use for the give uri string by looking up the uri's extension in the the pipelines map.

    Attributes
    protected
  90. var pipelines: Map[String, List[Filter]]

    Permalink
  91. var resourceLoader: ResourceLoader

    Permalink

    Loads resources such as the templates based on URIs

  92. def shutdown(): Unit

    Permalink
  93. def source(uri: String, templateType: String): TemplateSource

    Permalink

    Returns a template source of the given type of template for the given URI and current resourceLoader

  94. def source(uri: String): TemplateSource

    Permalink

    Returns a template source for the given URI and current resourceLoader

  95. var sourceDirectories: Iterable[File]

    Permalink
  96. def sourceDirectoriesForwarder: Iterable[File]

    Permalink

    A forwarder so we can refer to whatever the current latest value of sourceDirectories is even if the value is mutated after the TemplateEngine is constructed

    A forwarder so we can refer to whatever the current latest value of sourceDirectories is even if the value is mutated after the TemplateEngine is constructed

    Attributes
    protected
  97. def sourceDirectory: File

    Permalink
  98. def sourceFileName(uri: String): File

    Permalink

    Returns the source file of the template URI

    Returns the source file of the template URI

    Attributes
    protected
  99. val sourceMapLog: Log

    Permalink
    Attributes
    protected
  100. def storeSourceMap(classFile: File, sourceMap: String): Unit

    Permalink
    Attributes
    protected
  101. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  102. var templateDirectories: List[String]

    Permalink

    A list of directories which are searched to load requested templates.

  103. def templateExtensionsFor(extension: String): Set[String]

    Permalink

    Returns the mutable set of template extensions which are mapped to the given URI extension.

  104. def tmpDirectory: File

    Permalink
  105. def toString(): String

    Permalink
    Definition Classes
    TemplateEngine → AnyRef → Any
  106. def uriToSource(uri: String): UriTemplateSource

    Permalink

    Creates a org.fusesource.scalate.TemplateSource from a URI

    Attributes
    protected
  107. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  108. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  109. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  110. def workingDirectory: File

    Permalink

    If not explicitly configured this will default to using the scalate.workdir system property to specify the directory used for generating the scala source code and compiled bytecode - otherwise a temporary directory is used

  111. def workingDirectory_=(value: File): Unit

    Permalink
  112. def [B](y: B): (TemplateEngine, B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from TemplateEngine to ArrowAssoc[TemplateEngine] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from TemplateEngine to any2stringadd[TemplateEngine]

Inherited by implicit conversion StringFormat from TemplateEngine to StringFormat[TemplateEngine]

Inherited by implicit conversion Ensuring from TemplateEngine to Ensuring[TemplateEngine]

Inherited by implicit conversion ArrowAssoc from TemplateEngine to ArrowAssoc[TemplateEngine]

Ungrouped