Sha256: d09a7696b8178c32b4e9fd0e20b574ea8b5c87f4103199a803781896e3c734f8
Contents?: true
Size: 996 Bytes
Versions: 1
Compression:
Stored size: 996 Bytes
Contents
module Temple module Mixins # @api private module Template include DefaultOptions def engine(engine = nil) default_options[:engine] = engine if engine default_options[:engine] end def init # Overwrite this for class initialization end def register_as(name) raise NotImplementedError end def create(engine, options) template = Class.new(self) template.default_options[:engine] = engine template.default_options.update(options) template.init template.register_as(options[:register_as]) if options[:register_as] template end def build_engine(*options) raise 'No engine configured' unless engine options << default_options engine.new(ImmutableHash.new(*options)) end def chain(&block) chain = (default_options[:chain] ||= []) chain << block if block chain end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
temple-0.4.1 | lib/temple/mixins/template.rb |