Class: Delorean::KwArgs

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

Instance Method Summary collapse

Instance Method Details

#check(context) ⇒ Object


842
843
844
845
846
847
848
849
# File 'lib/delorean/nodes.rb', line 842

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


851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
# File 'lib/delorean/nodes.rb', line 851

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