class DeadCodeDetector::Storage::MemoryBackend

Attributes

flush_immediately[RW]
pending_deletions[R]

Public Class Methods

new() click to toggle source
# File lib/dead_code_detector/storage/memory_backend.rb, line 9
def initialize
  @mapping = Hash.new{|h,k| h[k] = Set.new }
  @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/memory_backend.rb, line 18
def add(key, values)
  @mapping[key].merge(Array(values))
end
clear(key) click to toggle source
# File lib/dead_code_detector/storage/memory_backend.rb, line 14
def clear(key)
  @mapping.delete(key)
end
delete(key, value) click to toggle source
# File lib/dead_code_detector/storage/memory_backend.rb, line 30
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/memory_backend.rb, line 35
def flush
  @pending_deletions.each do |key, values|
    @mapping[key].subtract(values)
  end
  @pending_deletions.clear
end
get(key) click to toggle source
# File lib/dead_code_detector/storage/memory_backend.rb, line 22
def get(key)
  if @pending_deletions.key?(key)
    @mapping[key] - @pending_deletions[key]
  else
    @mapping[key]
  end
end