class Temple::Filters::MultiFlattener

Flattens nested multi expressions

@api public

Public Instance Methods

on_multi(*exps) click to toggle source
# File lib/temple/filters/multi_flattener.rb, line 8
def on_multi(*exps)
  # If the multi contains a single element, just return the element
  return compile(exps.first) if exps.size == 1
  result = [:multi]

  exps.each do |exp|
    exp = compile(exp)
    if exp.first == :multi
      result.concat(exp[1..-1])
    else
      result << exp
    end
  end

  result
end