Sha256: e56440442d35dbcae0899117d370377bd30d13fa6d94a4ee6f48b7807f4582ea

Contents?: true

Size: 708 Bytes

Versions: 3

Compression:

Stored size: 708 Bytes

Contents

# This module is created to compile [:haml, :strip],
# which is sexp for whitespace inner removal.module Hamlit
module Hamlit
  module Compilers
    module Strip
      def on_haml_strip(*exps)
        stripped = strip_newline(exps)
        on_multi(*stripped)
      end

      private

      def strip_newline(content)
        indexes = newline_indexes(content)

        content = content.dup
        content.delete_at(indexes.last)
        content.delete_at(indexes.first)
        content
      end

      def newline_indexes(exps)
        indexes = []
        exps.each_with_index do |exp, index|
          indexes << index if exp == [:static, "\n"]
        end
        indexes
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
hamlit-1.5.3 lib/hamlit/compilers/strip.rb
hamlit-1.5.2 lib/hamlit/compilers/strip.rb
hamlit-1.5.1 lib/hamlit/compilers/strip.rb