module EventMachine::Bucketer::Database::Redis

Private Instance Methods

add_bucket_to_db(bucket_id, item_id, item, &blk) click to toggle source
# File lib/em-bucketer/database/redis.rb, line 23
def add_bucket_to_db(bucket_id, item_id, item, &blk)
  EM::Completion.new.tap do |c|
    c.callback(&blk) if block_given?
    redis.hset(redis_key(bucket_id), item_id, Marshal.dump(item)).callback do
      add_to_known_buckets(bucket_id).callback do
        c.succeed
      end.errback do |e|
        c.fail e
      end
    end.errback do |e|
      c.fail e
    end
  end
end
add_to_known_buckets(bucket_id, &blk) click to toggle source
# File lib/em-bucketer/database/redis.rb, line 74
def add_to_known_buckets(bucket_id, &blk)
  redis.sadd(redis_known_buckets_key, bucket_id, &blk)
end
bucket_size_from_db(bucket_id, &blk) click to toggle source
# File lib/em-bucketer/database/redis.rb, line 12
def bucket_size_from_db(bucket_id, &blk)
  EM::Completion.new.tap do |c|
    c.callback(&blk) if block_given?
    redis.hlen(redis_key(bucket_id)).callback do |len|
      c.succeed len.to_i
    end.errback do |e|
      c.fail e
    end
  end
end
empty_bucket_in_db(bucket_id, &blk) click to toggle source
# File lib/em-bucketer/database/redis.rb, line 55
def empty_bucket_in_db(bucket_id, &blk)
  EM::Completion.new.tap do |c|
    c.callback(&blk) if block_given?
    redis.del(redis_key(bucket_id)).callback do
      remove_from_known_buckets(bucket_id).callback do
        c.succeed
      end.errback do |e|
        c.fail e
      end
    end.errback do |e|
      c.fail e
    end
  end
end
get_bucket_from_db(bucket_id, &blk) click to toggle source
# File lib/em-bucketer/database/redis.rb, line 38
def get_bucket_from_db(bucket_id, &blk)
  EM::Completion.new.tap do |c|
    c.callback(&blk) if block_given?
    redis.hgetall(redis_key(bucket_id)) do |data|
      bucket = {}
      index = 0
      while(index < data.size)
        bucket[data[index]] = Marshal.load(data[index + 1])
        index += 2
      end
      c.succeed bucket
    end.errback do |e|
      c.errback
    end
  end
end
known_buckets(&blk) click to toggle source
# File lib/em-bucketer/database/redis.rb, line 70
def known_buckets(&blk)
  redis.smembers(redis_known_buckets_key, &blk)
end
redis_key(bucket_id) click to toggle source
# File lib/em-bucketer/database/redis.rb, line 82
def redis_key(bucket_id)
  "em_bucketer:#{redis_prefix}:#{bucket_id}"
end
redis_known_buckets_key() click to toggle source
# File lib/em-bucketer/database/redis.rb, line 86
def redis_known_buckets_key
  "em_bucketer_known_buckets:#{redis_prefix}"
end
remove_from_known_buckets(bucket_id, &blk) click to toggle source
# File lib/em-bucketer/database/redis.rb, line 78
def remove_from_known_buckets(bucket_id, &blk)
  redis.srem(redis_known_buckets_key, bucket_id, &blk)
end
setup_db() click to toggle source
# File lib/em-bucketer/database/redis.rb, line 9
def setup_db
end