class RIMS::Checksum_KeyValueStore
Public Class Methods
new(kvs)
click to toggle source
# File lib/rims/cksum_kvs.rb, line 6 def initialize(kvs) @kvs = kvs end
Public Instance Methods
[](key)
click to toggle source
# File lib/rims/cksum_kvs.rb, line 24 def [](key) md5_cksum_parse(key, @kvs[key]) end
[]=(key, value)
click to toggle source
# File lib/rims/cksum_kvs.rb, line 28 def []=(key, value) @kvs[key] = "md5 #{Digest::MD5.hexdigest(value)}\n#{value}" value end
close()
click to toggle source
# File lib/rims/cksum_kvs.rb, line 52 def close @kvs.close self end
delete(key)
click to toggle source
# File lib/rims/cksum_kvs.rb, line 33 def delete(key) md5_cksum_parse(key, @kvs.delete(key)) end
destroy()
click to toggle source
# File lib/rims/cksum_kvs.rb, line 57 def destroy @kvs.destroy nil end
each_key(&block)
click to toggle source
# File lib/rims/cksum_kvs.rb, line 41 def each_key(&block) return enum_for(:each_key) unless block_given? @kvs.each_key(&block) self end
key?(key)
click to toggle source
# File lib/rims/cksum_kvs.rb, line 37 def key?(key) @kvs.key? key end
sync()
click to toggle source
# File lib/rims/cksum_kvs.rb, line 47 def sync @kvs.sync self end
Private Instance Methods
md5_cksum_parse(key, s)
click to toggle source
# File lib/rims/cksum_kvs.rb, line 10 def md5_cksum_parse(key, s) if (s) then s =~ /\A md5 \s (\S+?) \n/x or raise "checksum format error at key: #{key}" md5_cksum = $1 value = $' if (Digest::MD5.hexdigest(value) != md5_cksum) then raise "checksum error at key: #{key}" end value end end