class Opal::Rewriters::MlhsArgs::Arguments
Attributes
initialization[R]
rewritten[R]
Public Class Methods
new(args)
click to toggle source
# File lib/opal/rewriters/mlhs_args.rb, line 70 def initialize(args) @args = args @rewritten = [] @initialization = [] @rewriter = MlhsRewriter.new split! end
Public Instance Methods
new_mlhs_tmp()
click to toggle source
# File lib/opal/rewriters/mlhs_args.rb, line 83 def new_mlhs_tmp @counter ||= 0 @counter += 1 :"$mlhs_tmp#{@counter}" end
reset_tmp_counter!()
click to toggle source
# File lib/opal/rewriters/mlhs_args.rb, line 79 def reset_tmp_counter! @counter = 0 end
split!()
click to toggle source
# File lib/opal/rewriters/mlhs_args.rb, line 89 def split! @args.children.each do |arg| if arg.type == :mlhs var_name = new_mlhs_tmp rhs = s(:lvar, var_name) mlhs = @rewriter.process(arg) @initialization << s(:masgn, mlhs, rhs) @rewritten << s(:arg, var_name).updated(nil, nil, meta: { arg_name: var_name }) else @rewritten << arg end end if @initialization.length == 1 @initialization = @initialization[0] elsif @initialization.empty? @initialization = nil else @initialization = s(:begin, *@initialization) end end