class Kludge::Parts
Public Class Methods
new()
click to toggle source
# File lib/kludge/parts.rb, line 5 def initialize @parts = [] end
Public Instance Methods
<<(part)
click to toggle source
# File lib/kludge/parts.rb, line 31 def <<(part) @parts << part end
assign_family(node)
click to toggle source
# File lib/kludge/parts.rb, line 43 def assign_family(node) parent = @parts.detect { |part| part.name == node.dependency } return node unless parent node.parent = parent parent.children << node assign_family(parent) end
each() { |part| ... }
click to toggle source
# File lib/kludge/parts.rb, line 9 def each @parts.each do |part| yield part end end
graph()
click to toggle source
# File lib/kludge/parts.rb, line 35 def graph @graph ||= begin leaves.map { |leaf| assign_family(leaf) }.uniq end end
leaves()
click to toggle source
# File lib/kludge/parts.rb, line 51 def leaves leaves = @parts.dup @parts.each do |part| leaves.delete_if { |leaf| leaf.name == part.dependency } end leaves end
names()
click to toggle source
# File lib/kludge/parts.rb, line 27 def names @parts.map(&:name) end
save()
click to toggle source
# File lib/kludge/parts.rb, line 15 def save graph.each do |root| root.save end end
valid?()
click to toggle source
# File lib/kludge/parts.rb, line 21 def valid? graph.map do |root| root.valid? end.all? end