Class: Skim::Compiler

Inherits:
Slim::Compiler
  • Object
show all
Defined in:
lib/skim/compiler.rb

Instance Method Summary collapse

Instance Method Details

#on_slim_attr(name, escape, code) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/skim/compiler.rb', line 9

def on_slim_attr(name, escape, code)
  value = case code
  when 'true'
    escape = false
    [:static, name]
  when 'false', 'null'
    escape = false
    [:multi]
  else
    tmp = unique_name
    [:multi,
     [:code, "#{tmp} = #{code}"],
     [:case, tmp,
      ['true', [:static, name]],
      ['false, null', [:multi]],
      [:else,
       [:dynamic,
        #if delimiter = options[:attr_delimiter][name]
        #  "#{tmp}.respond_to?(:join) ? #{tmp}.flatten.compact.join(#{delimiter.inspect}) : #{tmp}"
        #else
          tmp
        #end
       ]]]]
  end
  [:html, :attr, name, [:escape, escape, value]]
end

#on_slim_control(code, content) ⇒ Object



3
4
5
6
7
# File 'lib/skim/compiler.rb', line 3

def on_slim_control(code, content)
  [:multi,
    [:code, code],
    [:indent, compile(content)]]
end