class Slim::Translator::StaticTranslator

Public Class Methods

new(opts = {}) click to toggle source
Calls superclass method
# File lib/slim/translator.rb, line 60
def initialize(opts = {})
  super
  @translate = eval("proc {|string| #{options[:tr_fn]}(string) }")
end

Public Instance Methods

call(exp) click to toggle source
# File lib/slim/translator.rb, line 65
def call(exp)
  @text, @captures = ''.dup, []
  result = compile(exp)

  text = @translate.call(@text)
  while text =~ /%(\d+)/
    result << [:static, $`] << @captures[$1.to_i - 1]
    text = $'
  end
  result << [:static, text]
end
on_slim_output(escape, code, content) click to toggle source
# File lib/slim/translator.rb, line 82
def on_slim_output(escape, code, content)
  @captures << [:slim, :output, escape, code, content]
  @text << "%#{@captures.size}"
  [:multi]
end
on_static(text) click to toggle source
# File lib/slim/translator.rb, line 77
def on_static(text)
  @text << text
  [:multi]
end