# Class: Haml::Filters::TextBase

Inherits:
  Base
  - Object
  - Base
  - Haml::Filters::TextBase
  show all

Defined in:
  lib/haml/filters/text_base.rb

## Direct Known Subclasses

Cdata, Css, Javascript

## Instance Method Summary collapse

- #compile_text!(temple, node, prefix)

### Methods inherited from Base

#initialize

## Constructor Details

This class inherits a constructor from Haml::Filters::Base

## Instance Method Details

### #compile_text!(temple, node, prefix)

    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22

    # File 'lib/haml/filters/text_base.rb', line 5

    def compile_text!(temple, node, prefix)
      text = node.value[:text].rstrip.gsub(/^/, prefix)
      if ::Haml::Util.contains_interpolation?(node.value[:text])
        # original: Haml::Filters#compile
        text = ::Haml::Util.unescape_interpolation(text).gsub(/(\\+)n/) do |s|
          escapes = $1.size
          next s if escapes % 2 == 0
          "#{'\\' * (escapes - 1)}\n"
        end
        text.prepend("\n")
        temple << [:dynamic, text]
      else
        node.value[:text].split("\n").size.times do
          temple << [:newline]
        end
        temple << [:static, text]
      end
    end