Module: Zena::Use::ZafuEval::ZafuMethods

Defined in:
lib/zena/use/zafu_eval.rb

Instance Method Summary collapse

Instance Method Details

#r_evalObject



46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/zena/use/zafu_eval.rb', line 46

def r_eval
  text = @blocks.first
  if !text.kind_of?(String) || @blocks.size > 1
    parser_error("Cannot evaluate RubyLess codes with zafu methods")
  else
    res = RubyLess.translate(self, text)
    if res.literal.kind_of?(String)
      erb_escape res.literal
    else
      "<%= #{res} %>"
    end
  end
end

#r_zafu_evalObject



37
38
39
40
41
42
43
44
# File 'lib/zena/use/zafu_eval.rb', line 37

def r_zafu_eval
  return parser_error("Missing 'code' parameter.") unless code = params[:code]
  return parser_error("Not a node context.") unless node.will_be?(Node)
  code = RubyLess.translate(self, code)
  zafu_url = @options[:root]
  master   = @context[:master_template]
  out "<%= zafu_eval(#{node.to_s}, #{code}, :zafu_url => #{zafu_url.inspect}, :template => #{master ? master.zip : 'nil'}) %>"
end