Class: Delorean::KwArgs

Inherits:
SNode
  • Object
show all
Defined in:
lib/delorean/nodes.rb

Instance Method Summary collapse

Instance Method Details

#check(context) ⇒ Object



873
874
875
876
877
878
879
880
# File 'lib/delorean/nodes.rb', line 873

def check(context, *)
  [
    arg0.check(context),
    (ifexp.e3.check(context) if defined?(ifexp.e3)),
    (args_rest.al.check(context) if
      defined?(args_rest.al) && !args_rest.al.empty?)
  ].compact.sum
end

#rewrite(context, var, i = 0) ⇒ Object



882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
# File 'lib/delorean/nodes.rb', line 882

def rewrite(context, var, i = 0)
  arg0_rw = arg0.rewrite(context)

  if defined?(splat)
    res = "#{var}.merge!(#{arg0_rw})"
  else
    k_rw = defined?(k.i) ? "'#{k.i.text_value}'" : i.to_s
    res = "#{var}[#{k_rw}]=(#{arg0_rw})"
    i += 1 unless defined?(k.i)
  end

  res += " if (#{ifexp.e3.rewrite(context)})" if defined?(ifexp.e3)
  res += ';'
  res += args_rest.al.rewrite(context, var, i) if
    defined?(args_rest.al) && !args_rest.al.text_value.empty?
  res
end