Class: FastHaml::FilterCompilers::Preserve

Inherits:
Base
  • Object
show all
Includes:
Temple::Utils
Defined in:
lib/fast_haml/filter_compilers/preserve.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#need_newline?

Class Method Details

.preserve(str) ⇒ Object



19
20
21
# File 'lib/fast_haml/filter_compilers/preserve.rb', line 19

def self.preserve(str)
  str.gsub("\n", '
')
end

Instance Method Details

#compile(texts) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/fast_haml/filter_compilers/preserve.rb', line 8

def compile(texts)
  temple = [:multi, [:newline]]
  # I don't know why only :preserve filter keeps the last empty lines.
  compile_texts(temple, texts, keep_last_empty_lines: true)
  sym = unique_name
  [:multi,
    [:capture, sym, temple],
    [:dynamic, "::FastHaml::FilterCompilers::Preserve.preserve(#{sym})"],
  ]
end