Class: Opal::Rewriters::Arguments
- Inherits:
-
Object
- Object
- Opal::Rewriters::Arguments
- Defined in:
- opal/lib/opal/rewriters/arguments.rb
Instance Attribute Summary collapse
-
#args ⇒ Object
readonly
Returns the value of attribute args.
-
#blockarg ⇒ Object
readonly
Returns the value of attribute blockarg.
-
#kwargs ⇒ Object
readonly
Returns the value of attribute kwargs.
-
#kwoptargs ⇒ Object
readonly
Returns the value of attribute kwoptargs.
-
#kwrestarg ⇒ Object
readonly
Returns the value of attribute kwrestarg.
-
#optargs ⇒ Object
readonly
Returns the value of attribute optargs.
-
#postargs ⇒ Object
readonly
Returns the value of attribute postargs.
-
#restarg ⇒ Object
readonly
Returns the value of attribute restarg.
-
#shadowargs ⇒ Object
readonly
Returns the value of attribute shadowargs.
Instance Method Summary collapse
- #can_inline_kwargs? ⇒ Boolean
- #has_any_kwargs? ⇒ Boolean
- #has_post_args? ⇒ Boolean
-
#initialize(args) ⇒ Arguments
constructor
A new instance of Arguments.
Constructor Details
#initialize(args) ⇒ Arguments
Returns a new instance of Arguments.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'opal/lib/opal/rewriters/arguments.rb', line 10 def initialize(args) @args = [] @optargs = [] @restarg = nil @postargs = [] @kwargs = [] @kwoptargs = [] @kwrestarg = nil @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 :kwrestarg @kwrestarg = arg when :shadowarg @shadowargs << arg when :blockarg @blockarg = arg else raise "Unsupported arg type #{arg.type}" end end end |
Instance Attribute Details
#args ⇒ Object (readonly)
Returns the value of attribute args.
6 7 8 |
# File 'opal/lib/opal/rewriters/arguments.rb', line 6 def args @args end |
#blockarg ⇒ Object (readonly)
Returns the value of attribute blockarg.
6 7 8 |
# File 'opal/lib/opal/rewriters/arguments.rb', line 6 def blockarg @blockarg end |
#kwargs ⇒ Object (readonly)
Returns the value of attribute kwargs.
6 7 8 |
# File 'opal/lib/opal/rewriters/arguments.rb', line 6 def kwargs @kwargs end |
#kwoptargs ⇒ Object (readonly)
Returns the value of attribute kwoptargs.
6 7 8 |
# File 'opal/lib/opal/rewriters/arguments.rb', line 6 def kwoptargs @kwoptargs end |
#kwrestarg ⇒ Object (readonly)
Returns the value of attribute kwrestarg.
6 7 8 |
# File 'opal/lib/opal/rewriters/arguments.rb', line 6 def kwrestarg @kwrestarg end |
#optargs ⇒ Object (readonly)
Returns the value of attribute optargs.
6 7 8 |
# File 'opal/lib/opal/rewriters/arguments.rb', line 6 def optargs @optargs end |
#postargs ⇒ Object (readonly)
Returns the value of attribute postargs.
6 7 8 |
# File 'opal/lib/opal/rewriters/arguments.rb', line 6 def postargs @postargs end |
#restarg ⇒ Object (readonly)
Returns the value of attribute restarg.
6 7 8 |
# File 'opal/lib/opal/rewriters/arguments.rb', line 6 def restarg @restarg end |
#shadowargs ⇒ Object (readonly)
Returns the value of attribute shadowargs.
6 7 8 |
# File 'opal/lib/opal/rewriters/arguments.rb', line 6 def shadowargs @shadowargs end |
Instance Method Details
#can_inline_kwargs? ⇒ Boolean
53 54 55 |
# File 'opal/lib/opal/rewriters/arguments.rb', line 53 def can_inline_kwargs? @optargs.empty? && @restarg.nil? && @postargs.empty? end |
#has_any_kwargs? ⇒ Boolean
49 50 51 |
# File 'opal/lib/opal/rewriters/arguments.rb', line 49 def has_any_kwargs? @kwargs.any? || @kwoptargs.any? || !@kwrestarg.nil? end |
#has_post_args? ⇒ Boolean
45 46 47 |
# File 'opal/lib/opal/rewriters/arguments.rb', line 45 def has_post_args? !@restarg.nil? || @postargs.any? || (has_any_kwargs? && !can_inline_kwargs?) end |