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

Class Method Details

.preserve(str) ⇒ Object



23
24
25
# File 'lib/fast_haml/filter_compilers/preserve.rb', line 23

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

Instance Method Details

#compile(texts) ⇒ Object



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

def compile(texts)
  temple = [:multi, [:newline]]
  texts.each do |text|
    temple << text_compiler.compile(text)
    unless texts.last.equal?(text)
      temple << [:static, "\n"] << [:newline]
    end
  end
  sym = unique_name
  [:multi,
    [:capture, sym, temple],
    [:dynamic, "::FastHaml::FilterCompilers::Preserve.preserve(#{sym})"],
  ]
end