module Mutant::AST::NamedChildren::ClassMethods
def children(*names)
-
(undefined)
-
def children(*names) names.each_with_index do |name, index| define_named_child(name, index) end define_remaining_children(names) end
def define_named_child(name, index)
-
(undefined)
-
Parameters:
-
index
(Integer
) -- -
name
(Symbol
) --
def define_named_child(name, index) define_private_method(name) do children.at(index) end end
def define_private_method(name, &)
-
(undefined)
-
Parameters:
-
name
(Symbol
) --
def define_private_method(name, &) define_method(name, &) private(name) end
def define_remaining_children(names)
-
(undefined)
-
Parameters:
-
names
(Array
) --
def define_remaining_children(names) define_private_method(:remaining_children_with_index) do children.each_with_index.drop(names.length) end define_private_method(:remaining_children_indices) do children.each_index.drop(names.length) end define_private_method(:remaining_children) do children.drop(names.length) end end