Sha256: 8ec620ee4ce039ca8c8760337ad5a364d5e629d97f14f80a52a24ac88381e5c2

Contents?: true

Size: 487 Bytes

Versions: 5

Compression:

Stored size: 487 Bytes

Contents

module Temple
  module Filters
    class MultiFlattener < Filter
      def on_multi(*exps)
        # If the multi contains a single element, just return the element
        return compile!(exps.first) if exps.length == 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
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
temple-0.1.8 lib/temple/filters/multi_flattener.rb
temple-0.1.7 lib/temple/filters/multi_flattener.rb
temple-0.1.6 lib/temple/filters/multi_flattener.rb
temple-0.1.5 lib/temple/filters/multi_flattener.rb
temple-0.1.4 lib/temple/filters/multi_flattener.rb