class Autoproj::Metapackage
A set of packages that can be referred to by name
Attributes
The metapackage name
The packages listed in this metapackage
The normal dependency handling behaviour is to generate an error if a metapackage is selected for the build but some of its dependencies cannot be built. This modifies the behaviour to simply ignore the problematic packages.
Public Class Methods
Source
# File lib/autoproj/metapackage.rb, line 21 def initialize(name) @name = name @packages_by_name = Hash.new @weak_dependencies = false end
Public Instance Methods
Source
# File lib/autoproj/metapackage.rb, line 40 def add(pkg) packages_by_name[pkg.name] = pkg end
Adds a package to this metapackage
@param [Autobuild::Package] pkg
Source
# File lib/autoproj/metapackage.rb, line 69 def delete_if packages_by_name.delete_if { |name, package| yield(package) } end
Source
# File lib/autoproj/metapackage.rb, line 53 def each_package(&block) packages_by_name.each_value(&block) end
Lists the packages contained in this metapackage
@yieldparam [Autobuild::Package] pkg
Source
# File lib/autoproj/metapackage.rb, line 60 def include?(pkg) pkg = pkg.name unless pkg.respond_to?(:to_str) packages_by_name.has_key?(pkg) end
Tests if the given package is included in this metapackage
@param [String,#name] pkg the package or package name
Source
# File lib/autoproj/metapackage.rb, line 32 def packages Autoproj.warn_deprecated "use #each_package instead" each_package.to_a end
Deprecated, use each_package
instead
Source
# File lib/autoproj/metapackage.rb, line 45 def remove(pkg) pkg = pkg.name if pkg.respond_to?(:name) packages_by_name.delete(pkg) end
Remove a package from this metapackage
Source
# File lib/autoproj/metapackage.rb, line 17 def weak_dependencies? !!@weak_dependencies end
@return [Boolean] whether the dependencies from this metapackage are
weak or not
@see weak_dependencies