Sha256: 60432c199d17014ebc5d3843b4826e738c2894e5e4e85a4446164a7d6056542a
Contents?: true
Size: 1.31 KB
Versions: 2
Compression:
Stored size: 1.31 KB
Contents
# frozen_string_literal: true module CobraCommander # Represents a component withing an Umbrella class Component attr_reader :name, :packages def initialize(umbrella, name) @umbrella = umbrella @name = name @dependency_names = [] @packages = {} end def add_package(key, package) @packages[key] = package @dependency_names |= package.dependencies end def root_paths @packages.values.map do |package| File.dirname(package.path) end.uniq end def inspect "#<CobraCommander::Component:#{object_id} #{name} dependencies=#{dependencies.map(&:name)} packages=#{sources}>" end def deep_dependents @deep_dependents ||= @umbrella.components.find_all do |dep| dep.deep_dependencies.include?(self) end end def deep_dependencies @deep_dependencies ||= dependencies.reduce(dependencies) do |deps, dep| deps | dep.deep_dependencies end end def dependents @dependents ||= @umbrella.components.find_all do |dep| dep.dependencies.include?(self) end end def dependencies @dependencies ||= @dependency_names.sort .map(&@umbrella.method(:find)) .compact end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cobra_commander-0.15.1 | lib/cobra_commander/component.rb |
cobra_commander-0.15.0 | lib/cobra_commander/component.rb |