module DeepCover::Node::Mixin::HasChildHandler

Public Class Methods

included(base) click to toggle source
# File lib/deep_cover/node/mixin/has_child_handler.rb, line 6
def self.included(base)
  base.extend ClassMethods
end

Private Instance Methods

call_child_handler(template, child, child_name = nil) click to toggle source
# File lib/deep_cover/node/mixin/has_child_handler.rb, line 10
def call_child_handler(template, child, child_name = nil)
  child_name ||= self.child_index_to_name(child.index)
  method_name = format(template, name: child_name)
  if respond_to?(method_name)
    args = [child, child_name]
    arity = method(method_name).arity
    if arity >= 0
      args = args[0...arity]
    end
    answer = send(method_name, *args)
  end
  answer
end