module Elastics::Template::Common

Attributes

data[R]
name[R]
partials[R]
tags[R]

Public Instance Methods

interpolate_partials(vars) click to toggle source
# File lib/elastics/template/common.rb, line 14
def interpolate_partials(vars)
  @partials.each do |name|
    partial_assigned_vars = vars[name]
    next if Prunable::VALUES.include?(partial_assigned_vars)
    vars[name] = case partial_assigned_vars
                 when Array
                   partial_assigned_vars.map {|v| @host_elastics.partials[name].interpolate(vars, v)}
                 # other partial name (usable as a case output)
                 when Symbol
                   @host_elastics.partials[partial_assigned_vars].interpolate(vars, vars[partial_assigned_vars])
                 # a partial object
                 when Template::Partial
                   partial_assigned_vars.interpolate(vars, vars)
                 # on-the-fly partial creation (an empty string would prune it before)
                 when String
                   Template::Partial.new(partial_assigned_vars).interpolate(vars, vars)
                 # switch to include the partial (a false value would prune it before)
                 when TrueClass
                   @host_elastics.partials[name].interpolate(vars, vars)
                 else
                   @host_elastics.partials[name].interpolate(vars, partial_assigned_vars)
                 end
  end
  vars
end
setup(host_elastics, name=nil, *vars) click to toggle source
# File lib/elastics/template/common.rb, line 7
def setup(host_elastics, name=nil, *vars)
  @host_elastics = host_elastics
  @name         = name
  @source_vars  = Vars.new(*vars) if is_a?(Elastics::Template)
  self
end