Class: Contrast::Agent::Inventory::GemfileDigestCache

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/contrast/agent/inventory/gemfile_digest_cache.rb

Overview

Keeps a map of gem digest to files for reporting file usage

Instance Method Summary collapse

Constructor Details

#initializeGemfileDigestCache

Returns a new instance of GemfileDigestCache.



13
14
15
# File 'lib/contrast/agent/inventory/gemfile_digest_cache.rb', line 13

def initialize
  @gem_spec_digest_to_files = {}
end

Instance Method Details

#generate_usage_data(activity) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/contrast/agent/inventory/gemfile_digest_cache.rb', line 17

def generate_usage_data activity
  return unless activity

  @gem_spec_digest_to_files.each_pair do |digest, files|
    usage = Contrast::Api::Dtm::LibraryUsageUpdate.build(digest, files)
    activity.library_usages[usage.hash_code] = usage if activity
  end
  @gem_spec_digest_to_files.clear
end

#get(digest) ⇒ Object



31
32
33
34
# File 'lib/contrast/agent/inventory/gemfile_digest_cache.rb', line 31

def get digest
  @gem_spec_digest_to_files[digest] = Set.new unless @gem_spec_digest_to_files.key?(digest)
  @gem_spec_digest_to_files[digest]
end

#use_cache(digest) {|get(digest)| ... } ⇒ Object

Yields:

  • (get(digest))


27
28
29
# File 'lib/contrast/agent/inventory/gemfile_digest_cache.rb', line 27

def use_cache digest
  yield get(digest)
end