Sha256: c1da512244e0d112e406990bb51ae59d6367ca621bb38e06dd1dd77c9b909d91
Contents?: true
Size: 954 Bytes
Versions: 6
Compression:
Stored size: 954 Bytes
Contents
require 'caches/synchronized' module Waves module Caches class File < Simple def initialize( args ) raise ArgumentError, ":directory is nil" if args[ :directory ].nil? @directory = args[ :directory ] ; @keys = [] end def store( key, value ) @keys << key ::File.open( @directory / key, 'w') { |f| Marshal.dump( value, f ) } end def delete( key ) if @keys.include? key ::File.delete( @directory / key ) @keys.delete( key ) end end def clear @keys.each { |key| delete( key ) } end def fetch( key ) Marshal.load( ::File.read( @directory / key ) ) if @keys.include?( key ) rescue ArgumentError nil end end class SynchronizedFile < Synchronized def initialize( args ) super( File.new( args ) ) end end end end
Version data entries
6 entries across 6 versions & 4 rubygems