Class: Bundler::CompactIndexClient::Cache
- Inherits:
-
Object
- Object
- Bundler::CompactIndexClient::Cache
- Defined in:
- lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb
Instance Attribute Summary collapse
-
#directory ⇒ Object
readonly
Returns the value of attribute directory.
Instance Method Summary collapse
- #checksums ⇒ Object
- #dependencies(name) ⇒ Object
- #info_path(name) ⇒ Object
-
#initialize(directory) ⇒ Cache
constructor
A new instance of Cache.
- #names ⇒ Object
- #names_path ⇒ Object
- #specific_dependency(name, version, platform) ⇒ Object
- #versions ⇒ Object
- #versions_path ⇒ Object
Constructor Details
#initialize(directory) ⇒ Cache
Returns a new instance of Cache.
6 7 8 9 |
# File 'lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb', line 6 def initialize(directory) @directory = Pathname.new(directory). FileUtils.mkdir_p info_path(nil) end |
Instance Attribute Details
#directory ⇒ Object (readonly)
Returns the value of attribute directory.
4 5 6 |
# File 'lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb', line 4 def directory @directory end |
Instance Method Details
#checksums ⇒ Object
44 45 46 47 48 49 50 51 52 53 |
# File 'lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb', line 44 def checksums checksums = {} lines(versions_path).each do |line| name, _, checksum = line.split(" ", 3) checksums[name] = checksum end checksums end |
#dependencies(name) ⇒ Object
55 56 57 58 59 |
# File 'lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb', line 55 def dependencies(name) lines(info_path(name)).map do |line| parse_gem(line) end end |
#info_path(name) ⇒ Object
61 62 63 |
# File 'lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb', line 61 def info_path(name) directory.join("info", name.to_s) end |
#names ⇒ Object
11 12 13 |
# File 'lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb', line 11 def names lines(names_path) end |
#names_path ⇒ Object
15 16 17 |
# File 'lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb', line 15 def names_path directory.join("names") end |
#specific_dependency(name, version, platform) ⇒ Object
65 66 67 68 69 70 71 72 |
# File 'lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb', line 65 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 |
#versions ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb', line 19 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 ⇒ Object
40 41 42 |
# File 'lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb', line 40 def versions_path directory.join("versions") end |