Class: Tabry::Models::ArgsList
- Inherits:
-
ConfigList
- Object
- ConfigList
- Tabry::Models::ArgsList
- Defined in:
- lib/tabry/models/args_list.rb
Instance Attribute Summary
Attributes inherited from ConfigList
Instance Method Summary collapse
-
#initialize(**args) ⇒ ArgsList
constructor
A new instance of ArgsList.
- #n_passed_in_varargs(n_total_passed_in_args) ⇒ Object
- #varargs_arg ⇒ Object
Methods inherited from ConfigList
#[], #as_json, #each, #empty?, #flatten, #length, #to_a
Constructor Details
#initialize(**args) ⇒ ArgsList
Returns a new instance of ArgsList.
9 10 11 |
# File 'lib/tabry/models/args_list.rb', line 9 def initialize(**args) super(**args, klass: Arg) end |
Instance Method Details
#n_passed_in_varargs(n_total_passed_in_args) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/tabry/models/args_list.rb', line 13 def n_passed_in_varargs(n_total_passed_in_args) case to_a.count(&:varargs?) when 0 0 when 1 n_regular_passed_in_args = to_a.length - 1 [n_total_passed_in_args - n_regular_passed_in_args, 0].max else arg_names = to_a.map { |a| "#{a.name || "[unnamed]"}#{a.varargs? ? " (varargs)" : ""}" } raise ConfigError, "More than one varargs args in one sub: #{arg_names.join(", ")}" end end |
#varargs_arg ⇒ Object
26 27 28 |
# File 'lib/tabry/models/args_list.rb', line 26 def varargs_arg to_a.find(&:varargs?) end |