Class: Ki::Version

Inherits:
Object show all
Defined in:
lib/data_access/repository_info.rb

Overview

Combines version’s information from all different repositories

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.create_version(file, binary_directory = nil) ⇒ Object

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

  • works for testing and showing



89
90
91
92
93
94
95
96
97
98
99
100
101
102
# 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. = VersionMetadataFile.new(File.basename(file)).parent(repo_ver)
  version.versions=[repo_ver]
  if binary_directory
    version.binaries = DirectoryBase.new(binary_directory)
  end
  version
end

Instance Method Details

#collect_statusesObject

collects all statuses related to this version



60
61
62
63
64
65
66
67
68
69
70
71
# 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?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/data_access/repository_info.rb', line 83

def exists?
   || binaries
end

#find_binariesObject

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



38
39
40
41
42
43
44
45
46
# 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) ⇒ Object

finds files from this version (recursive)



79
80
81
# File 'lib/data_access/repository_info.rb', line 79

def find_files(*file_patterns)
  FileFinder.new.version(self).files(file_patterns)
end

#find_metadataObject

finds first Repository::Version directory that contains metadata



49
50
51
52
53
54
55
56
57
# File 'lib/data_access/repository_info.rb', line 49

def 
  versions.each do |v|
    m = v.
    if m.exists?
      return m
    end
  end
  nil
end

#version_iteratorObject

finds all versions referenced by this version



74
75
76
# File 'lib/data_access/repository_info.rb', line 74

def version_iterator
  VersionIterator.new.version(self)
end