class Tempo::Model::Composite
Attributes
children[RW]
parent[RW]
Public Class Methods
delete(instance)
click to toggle source
Calls superclass method
Tempo::Model::Base::delete
# File lib/tempo/models/composite.rb, line 31 def delete(instance) instance.children.each do |child_id| child = find_by_id child_id instance.remove_child child end super instance end
new(options={})
click to toggle source
Calls superclass method
Tempo::Model::Base::new
# File lib/tempo/models/composite.rb, line 40 def initialize(options={}) super options @parent = options.fetch(:parent, :root) @children = options.fetch(:children, []) end
report_trees()
click to toggle source
# File lib/tempo/models/composite.rb, line 16 def report_trees report_array = "[" @index.each do |member| if member.parent == :root report_array += "[" report_array += member.report_branches report_array += "]," end end if report_array[-1] == "," report_array = report_array[0..-2] end report_array += "]" end
Public Instance Methods
<<(child)
click to toggle source
# File lib/tempo/models/composite.rb, line 46 def << child @children << child.id unless @children.include? child.id @children.sort! child.parent = self.id end
remove_child(child)
click to toggle source
# File lib/tempo/models/composite.rb, line 52 def remove_child(child) @children.delete child.id child.parent = :root end
report_branches()
click to toggle source
# File lib/tempo/models/composite.rb, line 57 def report_branches report = self.id.to_s child_report = ",[" @children.each do |c| child = self.class.find_by_id c child_report += "#{child.report_branches}," end if child_report == ",[" child_report = "" else child_report = child_report[0..-2] + "]" end report += child_report end