Sha256: 217f9ffa55f5b83b55a580a1ffd3a2abb8ee2387d0013c668bbe1332c07c723e
Contents?: true
Size: 966 Bytes
Versions: 2
Compression:
Stored size: 966 Bytes
Contents
module Kludge class Parts include Enumerable def initialize @parts = [] end def each @parts.each do |part| yield part end end def save graph.each do |root| root.save end end def valid? graph.map do |root| root.valid? end.all? end def names @parts.map(&:name) end def <<(part) @parts << part end def graph @graph ||= begin leaves.map { |leaf| assign_family(leaf) }.uniq end end 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 def leaves leaves = @parts.dup @parts.each do |part| leaves.delete_if { |leaf| leaf.name == part.dependency } end leaves end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
kludge-0.0.2 | lib/kludge/parts.rb |
kludge-0.0.1 | lib/kludge/parts.rb |