class DocTemplate::Objects::TOCMetadata
Public Class Methods
dump(data)
click to toggle source
# File lib/doc_template/objects/toc_metadata.rb, line 55 def dump(data) data.as_json end
load(data)
click to toggle source
# File lib/doc_template/objects/toc_metadata.rb, line 59 def load(data) new(data) end
Public Instance Methods
append(toc)
click to toggle source
# File lib/doc_template/objects/toc_metadata.rb, line 64 def append(toc) children.concat toc.children update_time end
collect_children()
click to toggle source
# File lib/doc_template/objects/toc_metadata.rb, line 69 def collect_children children + children.flat_map(&:children) end
collect_material_ids()
click to toggle source
# File lib/doc_template/objects/toc_metadata.rb, line 73 def collect_material_ids collect_children.flat_map(&:material_ids).compact.uniq end
ordered_material_ids()
click to toggle source
# File lib/doc_template/objects/toc_metadata.rb, line 77 def ordered_material_ids [].tap do |ids| children.each do |x| ids.concat x.material_ids ids.concat x.children.flat_map(&:material_ids) end end.compact end
prepend(toc)
click to toggle source
# File lib/doc_template/objects/toc_metadata.rb, line 86 def prepend(toc) children.unshift(*toc.children) update_time end
total_time_with(excludes)
click to toggle source
# File lib/doc_template/objects/toc_metadata.rb, line 91 def total_time_with(excludes) has_optionals = children.any? { |l1| l1.children.any?(&:optional) } if has_optionals || excludes.any? children.sum { |c| c.time_with(excludes) } else total_time end end
Private Instance Methods
update_time()
click to toggle source
# File lib/doc_template/objects/toc_metadata.rb, line 102 def update_time self.total_time = children.sum(&:time) end