Sha256: 511e49921e5a1df2440a46f7400f2ffb571b77034e6ca5fb9df22c43208cc9da
Contents?: true
Size: 845 Bytes
Versions: 1
Compression:
Stored size: 845 Bytes
Contents
module HashPersistent module Resource def self.included(base) base.extend ClassMethods base.module_eval do @store = {} @prefix = "" end end module ClassMethods def persist_to(store, prefix) raise ArgumentError unless store.respond_to?(:has_key?) and prefix.respond_to?(:to_s) @store = store @prefix = prefix end def find(key) @store[@prefix + key] end attr_reader :store, :prefix end attr_accessor :key def prefix_key self.class.prefix + key end def save raise RuntimeError unless key self.class.store[prefix_key] = self end def delete raise RuntimeError unless self.class.store.has_key?(prefix_key) self.class.store.delete(prefix_key) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kissifer-hash-persistent-0.1.1 | lib/hash-persistent/resource.rb |