class RIMS::DB::Mailbox

Public Instance Methods

add_msg(uid, msg_id) click to toggle source
# File lib/rims/db.rb, line 736
def add_msg(uid, msg_id)
  put_msg_id(uid, msg_id)
  self
end
each_msg_uid() { |to_i| ... } click to toggle source
# File lib/rims/db.rb, line 741
def each_msg_uid
  return enum_for(:each_msg_uid) unless block_given?
  @kvs.each_key do |uid|
    yield(uid.to_i)
  end
  self
end
expunge_msg(uid) click to toggle source
# File lib/rims/db.rb, line 771
def expunge_msg(uid)
  case (msg_flag_deleted(uid))
  when true
    # OK
  when false
    raise "not deleted flag at message uid: #{uid}"
  when nil
    raise "not found a message uid: #{uid}"
  else
    raise 'internal error.'
  end
  @kvs.delete(uid.to_s) or raise 'internal error.'
  self
end
msg_exist?(uid) click to toggle source
# File lib/rims/db.rb, line 749
def msg_exist?(uid)
  @kvs.key? uid.to_s
end
msg_flag_deleted(uid) click to toggle source
# File lib/rims/db.rb, line 759
def msg_flag_deleted(uid)
  if (s = @kvs[uid.to_s]) then
    s.split(',', 2)[1] == 'deleted'
  end
end
msg_id(uid) click to toggle source
# File lib/rims/db.rb, line 753
def msg_id(uid)
  if (s = @kvs[uid.to_s]) then
    s.split(',', 2)[0].to_i
  end
end
set_msg_flag_deleted(uid, value) click to toggle source
# File lib/rims/db.rb, line 765
def set_msg_flag_deleted(uid, value)
  msg_id = msg_id(uid) or raise "not found a message uid: #{uid}"
  put_msg_id(uid, msg_id, deleted: value)
  self
end

Private Instance Methods

put_msg_id(uid, msg_id, deleted: false) click to toggle source
# File lib/rims/db.rb, line 728
def put_msg_id(uid, msg_id, deleted: false)
  s = msg_id.to_s
  s << ',deleted' if deleted
  @kvs[uid.to_s] = s
  self
end