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