class RablToJbuilder::NodeTransformer

Public Instance Methods

rewrite_iter(exp) click to toggle source
# File lib/rabl_to_jbuilder/transformer.rb, line 98
def rewrite_iter(exp)
  if exp[1][0..2] == s(:call, nil, :node)
    node = exp[1]
    args = exp[2]
    block = exp[3]

    if args[0] == :args
      block = block.gsub(s(:lvar, args[1]), @object)
    elsif args == 0
    else
      raise "wat?"
    end

    key = node[3]
    if key[0] == :lit
      s(:call, json, key[1], block)
    else
      s(:call, json, :set!, key, block)
    end
  else
    exp
  end
end