Files
metasploit-gs/lib/anemone/storage/base.rb
T
HD Moore b3cc6e19b6 Initial import of an Anemone snapshot
git-svn-id: file:///home/svn/framework3/trunk@10924 4d416f70-5f16-0410-b530-b9f4589650da
2010-11-06 04:34:43 +00:00

76 lines
1.3 KiB
Ruby

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