class Temple::Filters::CodeMerger

@api public

Public Instance Methods

on_multi(*exps) click to toggle source
# File lib/temple/filters/code_merger.rb, line 5
def on_multi(*exps)
  result = [:multi]
  code = nil

  exps.each do |exp|
    if exp.first == :code
      if code
        code << '; ' unless code =~ /\n\Z/
        code << exp.last
      else
        code = exp.last.dup
        result << [:code, code]
      end
    elsif code && exp.first == :newline
      code << "\n"
    else
      result << compile(exp)
      code = nil
    end
  end

  result.size == 2 ? result[1] : result
end