module DeepCover::Node::Mixin::HasChild

Constants

CHILDREN
CHILDREN_TYPES

Public Class Methods

included(base) click to toggle source
# File lib/deep_cover/node/mixin/has_child.rb, line 6
def self.included(base)
  base.extend ClassMethods
end
new(*) click to toggle source
Calls superclass method
# File lib/deep_cover/node/mixin/has_child.rb, line 12
def initialize(*)
  super
  self.validate_children_types(children)
end

Public Instance Methods

child_index_to_name(index) click to toggle source
# File lib/deep_cover/node/mixin/has_child.rb, line 24
def child_index_to_name(index)
  self.class.child_index_to_name(index, children.size)
end
validate_children_types(nodes) click to toggle source
# File lib/deep_cover/node/mixin/has_child.rb, line 17
def validate_children_types(nodes)
  mismatches = self.class.check_children_types(nodes)
  unless mismatches.empty?
    raise TypeError, "Invalid children types for #{self.class}(type: #{self.type}): #{mismatches}"
  end
end