taichi-ishitani/rggen

View on GitHub
lib/rggen/base/component.rb

Summary

Maintainability
A
0 mins
Test Coverage
module RgGen
  module Base
    class Component
      include SingleForwardable

      def initialize(parent)
        @parent   = parent
        @children = []
        @level    = (parent && parent.level + 1) || 0
        @items    = []
      end

      attr_reader :parent
      attr_reader :children
      attr_reader :level
      attr_reader :items

      def need_children?
        @need_children
      end

      def add_child(child)
        @children << child if need_children?
      end

      def add_item(item)
        items << item
      end
    end
  end
end