class Ki::Version

Combines version's information from all different repositories @see Component @see Repository::Version @see Repository::Component @see VersionIterator @see RepositoryFinder @see FileFinder @see VersionMetadataFile @see VersionStatusFile

Public Class Methods

create_version(file, binary_directory=nil) click to toggle source

Initializes a Version and Repository::Version for files non-imported files

  • works for testing and showing

# File lib/data_access/repository_info.rb, line 89
def self.create_version(file, binary_directory=nil)
  dir = File.dirname(file)
  if dir == "."
    dir = Dir.pwd
  end
  version = Version.new
  repo_ver = Repository::Version.new(dir)
  repo_ver.metadata = VersionMetadataFile.new(File.basename(file)).parent(repo_ver)
  version.versions=[repo_ver]
  if binary_directory
    version.binaries = DirectoryBase.new(binary_directory)
  end
  version
end

Public Instance Methods

collect_statuses() click to toggle source

collects all statuses related to this version

# File lib/data_access/repository_info.rb, line 60
def collect_statuses
  ret = []
  versions.each do |v|
    s = v.statuses
    if s.exists?
      v.statuses.each do |status|
        ret << [status["key"], status["value"]]
      end
    end
  end
  ret
end
exists?() click to toggle source
# File lib/data_access/repository_info.rb, line 83
def exists?
  metadata || binaries
end
find_binaries() click to toggle source

finds first Repository::Version directory for this version that contains binaries

# File lib/data_access/repository_info.rb, line 38
def find_binaries
  finder.all_repositories.each do |package_root|
    binary_dir = package_root.go(version_id)
    if binary_dir.exists?
      return binary_dir
    end
  end
  nil
end
find_files(*file_patterns) click to toggle source

finds files from this version (recursive)

# File lib/data_access/repository_info.rb, line 79
def find_files(*file_patterns)
  FileFinder.new.version(self).files(file_patterns)
end
find_metadata() click to toggle source

finds first Repository::Version directory that contains metadata

# File lib/data_access/repository_info.rb, line 49
def find_metadata
  versions.each do |v|
    m = v.metadata
    if m.exists?
      return m
    end
  end
  nil
end
version_iterator() click to toggle source

finds all versions referenced by this version

# File lib/data_access/repository_info.rb, line 74
def version_iterator
  VersionIterator.new.version(self)
end