Sha256: 9f2e16c4a79defb58f3051b6f903eb52f6db7581c8e38f79b17450a174de9837
Contents?: true
Size: 1.32 KB
Versions: 12
Compression:
Stored size: 1.32 KB
Contents
require 'anemone/storage/exceptions' module Anemone module Storage class Base def initialize(adapter) @adap = adapter # verify adapter conforms to this class's methods methods.each do |method| if !@adap.respond_to?(method.to_sym) raise "Storage adapter must support method #{method}" end end end def [](key) @adap[key] rescue puts key raise RetrievalError, $! end def []=(key, value) @adap[key] = value rescue raise InsertionError, $! end def delete(key) @adap.delete(key) rescue raise DeletionError, $! end def each @adap.each { |k, v| yield k, v } rescue raise GenericError, $! end def merge!(hash) @adap.merge!(hash) rescue raise GenericError, $! end def close @adap.close rescue raise CloseError, $! end def size @adap.size rescue raise GenericError, $! end def keys @adap.keys rescue raise GenericError, $! end def has_key?(key) @adap.has_key?(key) rescue raise GenericError, $! end end end end
Version data entries
12 entries across 12 versions & 3 rubygems