Class Origami::PageTreeNode
In: sources/parser/page.rb
Parent: Dictionary

Class representing a node in a Page tree.

Methods

<<   children  

Included Modules

Configurable

Constants

Count = self.children.length
Count = self.Kids.length
Parent = self

Public Instance methods

[Source]

     # File sources/parser/page.rb, line 132
132:     def << (pageset)
133:         
134:       pageset = [pageset] unless pageset.is_a?(Enumerable)
135:       fail "Cannot add anything but Page and PageTreeNode to this node" unless pageset.all? { |item| item.is_a?(Page) or item.is_a?(PageTreeNode) }
136: 
137:       self.Kids ||= Array.new
138:       self.Kids.concat(pageset)
139:       self.Count = self.Kids.length
140:         
141:       pageset.each do |node| 
142:         node.Parent = self 
143:       end
144:         
145:     end

Returns an array of Page inheriting this tree node.

[Source]

     # File sources/parser/page.rb, line 114
114:     def children
115:       pageset = []
116:      
117:       unless self.Count.nil?
118:         self.Count.value.times { |n|
119:           if n < self.Kids.length
120:             node = self.Kids[n].is_a?(Reference) ? self.Kids[n].solve : self.Kids[n]
121:             case node
122:             when PageTreeNode then pageset.concat(node.children) 
123:             when Page then pageset << node
124:             end
125:           end      
126:         }
127:       end
128:       
129:       pageset
130:     end

[Validate]