Filter
Temple filter which processes embedded engines @api private
# File lib/slim/embedded.rb, line 82 def self.create(name, options) constructor = @engines[name] || raise(Temple::FilterError, "Embedded engine #{name} not found") constructor.call(options) end
# File lib/slim/embedded.rb, line 89 def initialize(opts = {}) super @engines = {} @enabled = normalize_engine_list(options[:enable_engines]) @disabled = normalize_engine_list(options[:disable_engines]) end
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.rb, line 72 def self.register(name, klass, *option_filter) name = name.to_sym local_options = option_filter.last.respond_to?(:to_hash) ? option_filter.pop.to_hash : {} define_options(name, *option_filter) klass.define_options(name) @engines[name.to_sym] = proc do |options| klass.new({}.update(options).delete_if {|k,v| !option_filter.include?(k) && k != name }.update(local_options)) end end
# File lib/slim/embedded.rb, line 103 def enabled?(name) (!@enabled || @enabled.include?(name)) && (!@disabled || !@disabled.include?(name)) end
# File lib/slim/embedded.rb, line 96 def on_slim_embedded(name, body) name = name.to_sym raise(Temple::FilterError, "Embedded engine #{name} is disabled") unless enabled?(name) @engines[name] ||= self.class.create(name, options) @engines[name].on_slim_embedded(name, body) end
Generated with the Darkfish Rdoc Generator 2.