lib/omnibus/fetcher.rb in omnibus-5.0.0 vs lib/omnibus/fetcher.rb in omnibus-5.1.0
- old
+ new
@@ -53,25 +53,38 @@
# This will usually be the same as +resolved_version+ but may
# refer toa remote ref name or tag for a source such as git.
attr_reader :described_version
#
- # The path where extracted software should live.
+ # The path where fetched software should live.
#
+ # Only files under this directory are modified. If the source to fetch
+ # is a directory, it is staged rooted here. If it's a file, it's copied
+ # underneath this directory. If it's a tarball, it's extracted here. If
+ # it's a repo, its checkout is rooted here. You get the idea.
+ #
+ # It's named project_dir instead of extract_dir/extract_path because of
+ # legacy reasons. This has nothing to do with project definitions or the
+ # underlying relative_path for a software definition (except for legacy
+ # behavior).
+ #
# @return [String]
#
attr_reader :project_dir
attr_reader :build_dir
#
# Create a new Fetcher object from the given software.
#
- # @param [Software] software
+ # The parameters correspond to the relevant portions of a software
+ # definition that a fetcher needs access to. This avoids strongly coupling
+ # the software object with all fetchers.
#
- # To preserve the original interface, this still takes a software-like
- # argument, but to avoid coupling with the software object, we pull out
- # what we need and don't touch it again.
+ # @param [ManifestEntry] manifest_entry
+ # @param [String] project_dir
+ # @param [String] build_dir
+ #
def initialize(manifest_entry, project_dir, build_dir)
@name = manifest_entry.name
@source = manifest_entry.locked_source
@resolved_version = manifest_entry.locked_version
@described_version = manifest_entry.described_version