class Ki::VersionIterator

Public Instance Methods

iterate_dependencies() click to toggle source
# File lib/data_access/version_iterators.rb, line 43
def iterate_dependencies
  version.metadata.dependencies.map do |dep|
    if internals || !dep["internal"]
      dep_v = VersionIterator.new
      dep_v.version = finder.version(dep["version_id"])
      dep_v.dependency = dep
      dep_v.exclude_dependencies.concat(exclude_dependencies).concat(select_dep_rm(dep))
      dep_v.block = block
      if dep["path"] || package_path
        dep_v.package_path = File.join([package_path, dep["path"]].compact)
      end
      if dependency_path || dep["name"]
        dep_v.dependency_path = File.join([dependency_path, dep["name"]].compact)
      end
      if ok_to_iterate_dependency(dep_v)
        [dep, dep_v.version, block.call(dep_v)]
      end
    end
  end.compact
end
iterate_versions(&block) click to toggle source
# File lib/data_access/version_iterators.rb, line 30
def iterate_versions(&block)
  start_iteration do |version_iterator|
    block.call(version_iterator.version)
    version_iterator.iterate_dependencies
  end
end
ok_to_iterate_dependency(dep_v) click to toggle source
# File lib/data_access/version_iterators.rb, line 77
def ok_to_iterate_dependency(dep_v)
  !(exclude_dependencies.size > 0 && (exclude_dependencies.any_matches?(dep_v.version.version_id) || dep_v.dependency_path && exclude_dependencies.any_matches?(dep_v.dependency_path)))
end
select_dep_rm(dep_v) click to toggle source
# File lib/data_access/version_iterators.rb, line 64
def select_dep_rm(dep_v)
  ops = dep_v["operations"]
  if ops
    ops.map do |op|
      if op.first == "dep-rm"
        op[1..-1]
      end
    end.compact.flatten
  else
    []
  end
end
start_iteration(&block) click to toggle source
# File lib/data_access/version_iterators.rb, line 37
def start_iteration(&block)
  @block = block
  @internals = true
  block.call(self)
end