module EacLauncher::Instances::Base::Cache

Public Instance Methods

cache_key(key) { || ... } click to toggle source
# File lib/eac_launcher/instances/base/cache.rb, line 11
def cache_key(key, &block)
  v = cache_key_get(key)
  return v if v.present? || block.nil?

  v = yield
  cache_key_write(key, v)
  v
end
cache_path(subpath) click to toggle source
# File lib/eac_launcher/instances/base/cache.rb, line 7
def cache_path(subpath)
  File.join(cache_root, subpath)
end

Private Instance Methods

cache_key_get(key) click to toggle source
# File lib/eac_launcher/instances/base/cache.rb, line 22
def cache_key_get(key)
  File.file?(cache_key_path(key)) ? File.read(cache_key_path(key)) : nil
end
cache_key_path(key) click to toggle source
# File lib/eac_launcher/instances/base/cache.rb, line 31
def cache_key_path(key)
  File.join(cache_root, 'keys', key.parameterize)
end
cache_key_write(key, value) click to toggle source
# File lib/eac_launcher/instances/base/cache.rb, line 26
def cache_key_write(key, value)
  FileUtils.mkdir_p(File.dirname(cache_key_path(key)))
  File.write(cache_key_path(key), value)
end
cache_root() click to toggle source
# File lib/eac_launcher/instances/base/cache.rb, line 35
def cache_root
  File.join(::EacLauncher::Context.current.cache_root, name.parameterize)
end