Class: Delorean::KwArgs

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

Instance Method Summary collapse

Instance Method Details

#check(context) ⇒ Object



884
885
886
887
888
889
890
891
# File 'lib/delorean/nodes.rb', line 884

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



893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
# File 'lib/delorean/nodes.rb', line 893

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