Sha256: 7c2c83a346e474d7dfad135c3d60c8488c73273bf222414bc646f487a044c67b
Contents?: true
Size: 791 Bytes
Versions: 3
Compression:
Stored size: 791 Bytes
Contents
# frozen_string_literal: true module Coltrane # A simple caching based on serializing objects into files # maybe this should changed to save in a single json file class Cache class << self def find_or_record(key, &block) unless (cached = fetch(key)) cached = yield block record(key, cached) end cached end private def dir dir = File.expand_path('../../../', __FILE__) + '/cache/' Dir.mkdir(dir) unless Dir.exist?(dir) dir end def fetch(key) Marshal.load File.read(dir + key) if File.file?(dir + key) end def record(key, contents) File.open(dir + key, 'w') do |f| f.write Marshal.dump(contents) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
coltrane-1.0.21 | lib/coltrane/cache.rb |
coltrane-1.0.20 | lib/coltrane/cache.rb |
coltrane-1.0.2 | lib/coltrane/cache.rb |