class Opal::Rewriters::Arguments
Attributes
args[R]
blockarg[R]
kwargs[R]
kwnilarg[R]
kwoptargs[R]
kwrestarg[R]
optargs[R]
postargs[R]
restarg[R]
shadowargs[R]
Public Class Methods
new(args)
click to toggle source
# File lib/opal/rewriters/arguments.rb, line 10 def initialize(args) @args = [] @optargs = [] @restarg = nil @postargs = [] @kwargs = [] @kwoptargs = [] @kwrestarg = nil @kwnilarg = false @shadowargs = [] @blockarg = nil args.each do |arg| case arg.type when :arg, :mlhs (@restarg || @optargs.any? ? @postargs : @args) << arg when :optarg @optargs << arg when :restarg @restarg = arg when :kwarg @kwargs << arg when :kwoptarg @kwoptargs << arg when :kwnilarg @kwnilarg = true when :kwrestarg @kwrestarg = arg when :shadowarg @shadowargs << arg when :blockarg @blockarg = arg else raise "Unsupported arg type #{arg.type}" end end end
Public Instance Methods
can_inline_kwargs?()
click to toggle source
# File lib/opal/rewriters/arguments.rb, line 56 def can_inline_kwargs? @optargs.empty? && @restarg.nil? && @postargs.empty? end
has_any_kwargs?()
click to toggle source
# File lib/opal/rewriters/arguments.rb, line 52 def has_any_kwargs? @kwargs.any? || @kwoptargs.any? || !@kwrestarg.nil? end
has_post_args?()
click to toggle source
# File lib/opal/rewriters/arguments.rb, line 48 def has_post_args? !@restarg.nil? || @postargs.any? || (has_any_kwargs? && !can_inline_kwargs?) end