class Bundler::CompactIndexClient::Cache
Attributes
directory[R]
Public Class Methods
new(directory)
click to toggle source
# File bundler/compact_index_client/cache.rb, line 10 def initialize(directory) @directory = Pathname.new(directory).expand_path info_roots.each do |dir| SharedHelpers.filesystem_access(dir) do FileUtils.mkdir_p(dir) end end end
Public Instance Methods
checksums()
click to toggle source
# File bundler/compact_index_client/cache.rb, line 52 def checksums checksums = {} lines(versions_path).each do |line| name, _, checksum = line.split(" ", 3) checksums[name] = checksum end checksums end
dependencies(name)
click to toggle source
# File bundler/compact_index_client/cache.rb, line 63 def dependencies(name) lines(info_path(name)).map do |line| parse_gem(line) end end
info_path(name)
click to toggle source
# File bundler/compact_index_client/cache.rb, line 69 def info_path(name) name = name.to_s if /[^a-z0-9_-]/.match?(name) name += "-#{SharedHelpers.digest(:MD5).hexdigest(name).downcase}" info_roots.last.join(name) else info_roots.first.join(name) end end
names()
click to toggle source
# File bundler/compact_index_client/cache.rb, line 19 def names lines(names_path) end
names_path()
click to toggle source
# File bundler/compact_index_client/cache.rb, line 23 def names_path directory.join("names") end
versions()
click to toggle source
# File bundler/compact_index_client/cache.rb, line 27 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
versions_path()
click to toggle source
# File bundler/compact_index_client/cache.rb, line 48 def versions_path directory.join("versions") end