lib/lru_redux/cache.rb in lru_redux-0.0.1 vs lib/lru_redux/cache.rb in lru_redux-0.0.2
- old
+ new
@@ -1,12 +1,12 @@
class LruRedux::Cache
# for high efficiency nodes in double linked list are stored in arrays
# [prev,key,val,next]
- def initialize(size)
- @size = size
+ def initialize(max_size)
+ @max_size = max_size
@data = {}
@head = nil
@tail = nil
end
@@ -60,10 +60,15 @@
prev.next = nex if prev
nex.prev = prev if nex
end
end
+ def clear
+ @data.clear
+ @head = @tail = nil
+ end
+
def count
@data.count
end
# for cache validation only, ensures all is sound
@@ -106,10 +111,10 @@
node.prev = @head
@head = node
end
def pop_tail
- if @data.length == @size
+ if @data.length == @max_size
@data.delete(@tail.key)
@tail = @tail.next
@tail.prev = nil
end
end