Sha256: 16c0382b30347cf074c3c76f1e706f624d11ff44dd9e0c617a01171c58d79958

Contents?: true

Size: 552 Bytes

Versions: 1

Compression:

Stored size: 552 Bytes

Contents

module GemOnDemand
  class FileCache
    def initialize(dir)
      @dir = dir
    end

    def write(file, value)
      Utils.ensure_directory(@dir)
      file = "#{@dir}/#{file}"
      File.write(file, Marshal.dump(value))
      value
    end

    def read(file)
      file = "#{@dir}/#{file}"
      Marshal.load(File.read(file)) if File.exist?(file)
    end

    def delete(file)
      file = "#{@dir}/#{file}"
      File.unlink(file) if File.exist?(file)
    end

    def fetch(file, &block)
      read(file) || write(file, yield)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gem_on_demand-1.1.0 lib/gem_on_demand/file_cache.rb