class Malt::Engine::Liquid

Liquid templates.

@see liquid.rubyforge.org/

Public Instance Methods

create_engine(params={}) click to toggle source
# File lib/malt/engines/liquid.rb, line 32
def create_engine(params={})
  text = parameters(params, :text)
  cached(text) do
    ::Liquid::Template.parse(text)
  end
end
render(params={}, &content) click to toggle source
# File lib/malt/engines/liquid.rb, line 14
def render(params={}, &content) #file, db, &content)
  text, scope, locals = parameters(params, :text, :scope, :locals)

  data = make_hash(scope, locals, &content)

  # convert symbol keys to strings w/o rewriting the hash
  symbol_keys = data.keys.select{ |k| Symbol === k }
  symbol_keys.each do |k|
    data[k.to_s] = data[k]
    data.delete(k)
  end

  engine = prepare_engine(params)

  engine.render(data)
end

Private Instance Methods

require_engine() click to toggle source

Load Liquid library if not already loaded.

# File lib/malt/engines/liquid.rb, line 42
def require_engine
  return if defined? ::Liquid::Template
  require_library 'liquid'
end