class Epuber::DSL::TreeObject
Attributes
@return [Self]
@return [self] reference to parent
@return [Array<self>] child items
Public Class Methods
Source
# File lib/epuber/dsl/tree_object.rb, line 10 def initialize(parent = nil) super() @parent = parent @sub_items = [] parent.sub_items << self unless parent.nil? end
@param [TreeObject] parent
Calls superclass method
Epuber::DSL::Object::new
Public Instance Methods
Source
# File lib/epuber/dsl/tree_object.rb, line 71 def create_child_item(*args) child = self.class.new(*args) parent_object_before = self.class.current_parent_object child.parent = parent_object_before || self child.parent.sub_items << child self.class.current_parent_object = child yield child if block_given? self.class.current_parent_object = parent_object_before child end
@yield [child_item] @yieldparam child_item [self] created child item
@return [self]
Source
# File lib/epuber/dsl/tree_object.rb, line 90 def create_child_items yield self if block_given? end
@return nil
Source
# File lib/epuber/dsl/tree_object.rb, line 36 def flat_sub_items all = [] sub_items.each do |item| all << item all.concat(item.flat_sub_items) end all end
@return [Array<self>] child items
Source
# File lib/epuber/dsl/tree_object.rb, line 21 def freeze super @sub_items.freeze end
@return nil
Calls superclass method
Epuber::DSL::Object#freeze
Source
# File lib/epuber/dsl/tree_object.rb, line 49 def root? @parent.nil? end
@return [Bool] receiver is root
Source
# File lib/epuber/dsl/tree_object.rb, line 55 def validate super sub_items.each(&:validate) end
@return nil
Calls superclass method
Epuber::DSL::Object#validate