Temple filter which processes embedded engines @api private
Register embedded engine
@param [String] name Name of the engine @param [Class] klass Engine class @param option_filter List of options to pass to engine.
Last argument can be default option hash.
# File lib/slim/embedded_engine.rb, line 75 def register(name, klass, *option_filter) local_options = Hash === option_filter.last ? option_filter.pop : nil @engines[name.to_s] = [klass, option_filter, local_options] end
# File lib/slim/embedded_engine.rb, line 81 def on_slim_embedded(name, body) name = name.to_s raise "Embedded engine #{name} is disabled" if (options[:enable_engines] && !options[:enable_engines].include?(name)) || (options[:disable_engines] && options[:disable_engines].include?(name)) engine, option_filter, local_options = self.class.engines[name] || raise("Embedded engine #{name} not found") filtered_options = Hash[*option_filter.select {|k| options.include?(k) }.map {|k| [k, options[k]] }.flatten] engine.new(Temple::ImmutableHash.new(local_options, filtered_options)).on_slim_embedded(name, body) end