class RIMS::DB::Core

Public Class Methods

new(kvs) click to toggle source
# File lib/rims/db.rb, line 8
def initialize(kvs)
  @kvs = kvs
end

Public Instance Methods

close() click to toggle source
# File lib/rims/db.rb, line 17
def close
  @kvs.close
  self
end
destroy() click to toggle source
# File lib/rims/db.rb, line 22
def destroy
  @kvs.destroy
  nil
end
sync() click to toggle source
# File lib/rims/db.rb, line 12
def sync
  @kvs.sync
  self
end
test_read_all() { |read_error| ... } click to toggle source
# File lib/rims/db.rb, line 27
def test_read_all         # :yields: read_error
  last_error = nil
  @kvs.each_key do |key|
    begin
      @kvs[key]
    rescue
      last_error = $!
      yield($!)
    end
  end

  if (last_error) then
    raise last_error
  end

  self
end

Private Instance Methods

get_num(key, default_value: 0) click to toggle source
# File lib/rims/db.rb, line 71
def get_num(key, default_value: 0)
  if (s = @kvs[key]) then
    s.to_i
  else
    default_value
  end
end
get_num_set(key) click to toggle source
# File lib/rims/db.rb, line 107
def get_num_set(key)
  if (s = @kvs[key]) then
    s.split(',', -1).map{|n| n.to_i }.to_set
  else
    [].to_set
  end
end
get_obj(key, default_value: nil) click to toggle source
# File lib/rims/db.rb, line 122
def get_obj(key, default_value: nil)
  if (s = @kvs[key]) then
    Marshal.load(s)
  else
    default_value
  end
end
get_str(key, default_value: nil) click to toggle source
# File lib/rims/db.rb, line 45
def get_str(key, default_value: nil)
  @kvs[key] || default_value
end
get_str_set(key) click to toggle source
# File lib/rims/db.rb, line 56
def get_str_set(key)
  if (s = @kvs[key]) then
    s.split(',', -1).to_set
  else
    [].to_set
  end
end
num_decrement(key) click to toggle source
# File lib/rims/db.rb, line 100
def num_decrement(key)
  n = get_num(key)
  put_num(key, n - 1)
  self
end
num_increment(key) click to toggle source
# File lib/rims/db.rb, line 93
def num_increment(key)
  n = get_num(key)
  put_num(key, n + 1)
  self
end
num_succ!(key, default_value: 0) click to toggle source
# File lib/rims/db.rb, line 86
def num_succ!(key, default_value: 0)
  n = get_num(key, default_value: default_value)
  put_num(key, n + 1)
  n
end
put_num(key, num) click to toggle source
# File lib/rims/db.rb, line 80
def put_num(key, num)
  @kvs[key] = num.to_s
  self
end
put_num_set(key, num_set) click to toggle source
# File lib/rims/db.rb, line 116
def put_num_set(key, num_set)
  @kvs[key] = num_set.to_a.join(',')
  self
end
put_obj(key, value) click to toggle source
# File lib/rims/db.rb, line 131
def put_obj(key, value)
  @kvs[key] = Marshal.dump(value)
  self
end
put_str(key, str) click to toggle source
# File lib/rims/db.rb, line 50
def put_str(key, str)
  @kvs[key] = str
  self
end
put_str_set(key, str_set) click to toggle source
# File lib/rims/db.rb, line 65
def put_str_set(key, str_set)
  @kvs[key] = str_set.to_a.join(',')
  self
end