Sha256: 226edbcd737fff56457eff5234da83c8212050c09860258289c8c8ea21d8c351

Contents?: true

Size: 1018 Bytes

Versions: 262

Compression:

Stored size: 1018 Bytes

Contents

# frozen_string_literal: true

module Avm
  module Launcher
    module Instances
      module Base
        module Cache
          def cache_path(subpath)
            File.join(cache_root, subpath)
          end

          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

          private

          def cache_key_get(key)
            File.file?(cache_key_path(key)) ? File.read(cache_key_path(key)) : nil
          end

          def cache_key_write(key, value)
            FileUtils.mkdir_p(File.dirname(cache_key_path(key)))
            File.write(cache_key_path(key), value)
          end

          def cache_key_path(key)
            File.join(cache_root, 'keys', key.parameterize)
          end

          def cache_root
            File.join(::Avm::Launcher::Context.current.cache_root, name.parameterize)
          end
        end
      end
    end
  end
end

Version data entries

262 entries across 262 versions & 3 rubygems

Version Path
avm-0.94.1 lib/avm/launcher/instances/base/cache.rb
eac_tools-0.98.0 sub/avm/lib/avm/launcher/instances/base/cache.rb
avm-0.94.0 lib/avm/launcher/instances/base/cache.rb
eac_tools-0.94.0 sub/avm/lib/avm/launcher/instances/base/cache.rb
avm-0.93.0 lib/avm/launcher/instances/base/cache.rb
eac_tools-0.92.0 sub/avm/lib/avm/launcher/instances/base/cache.rb
avm-0.92.0 lib/avm/launcher/instances/base/cache.rb
eac_tools-0.91.0 sub/avm/lib/avm/launcher/instances/base/cache.rb
avm-0.90.1 lib/avm/launcher/instances/base/cache.rb
eac_tools-0.87.1 sub/avm/lib/avm/launcher/instances/base/cache.rb
avm-0.90.0 lib/avm/launcher/instances/base/cache.rb
eac_tools-0.87.0 sub/avm/lib/avm/launcher/instances/base/cache.rb
avm-0.89.0 lib/avm/launcher/instances/base/cache.rb
eac_tools-0.86.12 sub/avm/lib/avm/launcher/instances/base/cache.rb
avm-0.88.0 lib/avm/launcher/instances/base/cache.rb
eac_tools-0.86.11 sub/avm/lib/avm/launcher/instances/base/cache.rb
avm-0.87.0 lib/avm/launcher/instances/base/cache.rb
eac_tools-0.86.8 sub/avm/lib/avm/launcher/instances/base/cache.rb
avm-0.86.2 lib/avm/launcher/instances/base/cache.rb
eac_tools-0.86.7 sub/avm/lib/avm/launcher/instances/base/cache.rb