Sha256: de155ac41a60954cd419feea8538473c2235ad6a8f4df608ab86ccb6a69046e4

Contents?: true

Size: 908 Bytes

Versions: 9

Compression:

Stored size: 908 Bytes

Contents

module EacLauncher
  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(::EacLauncher::Context.current.cache_root, name.parameterize)
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
eac_launcher-0.6.0 lib/eac_launcher/instances/base/cache.rb
eac_launcher-0.5.1 lib/eac_launcher/instances/base/cache.rb
eac_launcher-0.5.0 lib/eac_launcher/instances/base/cache.rb
eac_launcher-0.4.0 lib/eac_launcher/instances/base/cache.rb
eac_launcher-0.3.2 lib/eac_launcher/instances/base/cache.rb
eac_launcher-0.3.1 lib/eac_launcher/instances/base/cache.rb
eac_launcher-0.3.0 lib/eac_launcher/instances/base/cache.rb
eac_launcher-0.2.2 lib/eac_launcher/instances/base/cache.rb
eac_launcher-0.2.1 lib/eac_launcher/instances/base/cache.rb