class DeadCodeDetector::Storage::RedisBackend

Attributes

flush_immediately[RW]

Public Class Methods

new() click to toggle source
# File lib/dead_code_detector/storage/redis_backend.rb, line 8
def initialize
  @pending_deletions = Hash.new{|h,k| h[k] = Set.new }
end

Public Instance Methods

add(key, values) click to toggle source
# File lib/dead_code_detector/storage/redis_backend.rb, line 16
def add(key, values)
  values = Array(values)
  return if values.empty?
  DeadCodeDetector.config.redis.sadd(key, values)
  DeadCodeDetector.config.redis.expire(key, DeadCodeDetector.config.cache_expiry)
end
clear(key) click to toggle source
# File lib/dead_code_detector/storage/redis_backend.rb, line 12
def clear(key)
  DeadCodeDetector.config.redis.del(key)
end
delete(key, value) click to toggle source
# File lib/dead_code_detector/storage/redis_backend.rb, line 33
def delete(key, value)
  @pending_deletions[key] << value.to_s
  flush if flush_immediately
end
flush() click to toggle source
# File lib/dead_code_detector/storage/redis_backend.rb, line 38
def flush
  @pending_deletions.each do |key, values|
    DeadCodeDetector.config.redis.srem(key, values.to_a)
  end
  @pending_deletions.clear
end
get(key) click to toggle source
# File lib/dead_code_detector/storage/redis_backend.rb, line 23
def get(key)
  members = DeadCodeDetector.config.redis.smembers(key)
  members = Set.new(members) if members.is_a?(Array)
  if @pending_deletions.key?(key)
    members - @pending_deletions[key]
  else
    members
  end
end