Class: RablToJbuilder::NodeTransformer

Inherits:
Base
  • Object
show all
Defined in:
lib/rabl_to_jbuilder/transformer.rb

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from RablToJbuilder::Base

Instance Method Details

#rewrite_iter(exp) ⇒ Object



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# 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