# File bundler/compact_index_client/cache.rb, line 50
def checksums
checksums = {}
lines(versions_path).each do |line|
name, _, checksum = line.split(" ", 3)
checksums[name] = checksum
end
checksums
end
# File bundler/compact_index_client/cache.rb, line 61
def dependencies(name)
lines(info_path(name)).map do |line|
parse_gem(line)
end
end
# File bundler/compact_index_client/cache.rb, line 67
def info_path(name)
name = name.to_s
if name =~ /[^a-z0-9_-]/
name += "-#{SharedHelpers.digest(:MD5).hexdigest(name).downcase}"
info_roots.last.join(name)
else
info_roots.first.join(name)
end
end
# File bundler/compact_index_client/cache.rb, line 17
def names
lines(names_path)
end
# File bundler/compact_index_client/cache.rb, line 21
def names_path
directory.join("names")
end
# File bundler/compact_index_client/cache.rb, line 77
def specific_dependency(name, version, platform)
pattern = [version, platform].compact.join("-")
return nil if pattern.empty?
gem_lines = info_path(name).read
gem_line = gem_lines[/^#{Regexp.escape(pattern)}\b.*/, 0]
gem_line ? parse_gem(gem_line) : nil
end
# File bundler/compact_index_client/cache.rb, line 25
def versions
versions_by_name = Hash.new {|hash, key| hash[key] = [] }
info_checksums_by_name = {}
lines(versions_path).each do |line|
name, versions_string, info_checksum = line.split(" ", 3)
info_checksums_by_name[name] = info_checksum || ""
versions_string.split(",").each do |version|
if version.start_with?("-")
version = version[1..-1].split("-", 2).unshift(name)
versions_by_name[name].delete(version)
else
version = version.split("-", 2).unshift(name)
versions_by_name[name] << version
end
end
end
[versions_by_name, info_checksums_by_name]
end