class Foobara::LruCache

def prepend_node(node)

def prepend_node(node)
  if @size == 0
    @head = @tail = node
    @size = 1
  else
    @head.prev = node
    node.next = @head
    @head = node
    if @size < @capacity
      @size += 1
    else
      @key_to_node.delete(@tail.key)
      prev_node = @tail.prev
      if prev_node
        prev_node.next = nil
        @tail = prev_node
      end
    end
  end
end