class Slim::Translator::DynamicTranslator
Public Instance Methods
call(exp)
click to toggle source
# File lib/slim/translator.rb, line 92 def call(exp) @captures_count, @captures_var, @text = 0, unique_name, ''.dup result = compile(exp) if @captures_count > 0 result.insert(1, [:code, "#{@captures_var}=[]"]) result << [:slim, :output, false, "#{options[:tr_fn]}(#{@text.inspect}).gsub(/%(\\d+)/) { #{@captures_var}[$1.to_i-1] }", [:multi]] else result << [:slim, :output, false, "#{options[:tr_fn]}(#{@text.inspect})", [:multi]] end end
on_slim_output(escape, code, content)
click to toggle source
# File lib/slim/translator.rb, line 110 def on_slim_output(escape, code, content) @captures_count += 1 @text << "%#{@captures_count}" [:capture, "#{@captures_var}[#{@captures_count-1}]", [:slim, :output, escape, code, content]] end
on_static(text)
click to toggle source
# File lib/slim/translator.rb, line 105 def on_static(text) @text << text [:multi] end