lib/volt/utils/generic_counting_pool.rb in volt-0.8.14 vs lib/volt/utils/generic_counting_pool.rb in volt-0.8.15

- old
+ new

@@ -1,44 +1,46 @@ require 'volt/utils/generic_pool' -# A counting pool behaves like a normal GenericPool, except for -# each time lookup is called, remove should be called when complete. -# The item will be completely removed from the GenericCountingPool -# only when it has been removed an equal number of times it has been -# looked up. -class GenericCountingPool < GenericPool - # return a created item with a count - def generate_new(*args) - [0, create(*args)] - end +module Volt + # A counting pool behaves like a normal GenericPool, except for + # each time lookup is called, remove should be called when complete. + # The item will be completely removed from the GenericCountingPool + # only when it has been removed an equal number of times it has been + # looked up. + class GenericCountingPool < GenericPool + # return a created item with a count + def generate_new(*args) + [0, create(*args)] + end - # Finds an item and tracks that it was checked out. Use - # #remove when the item is no longer needed. - def find(*args, &block) - item = __lookup(*args, &block) + # Finds an item and tracks that it was checked out. Use + # #remove when the item is no longer needed. + def find(*args, &block) + item = __lookup(*args, &block) - item[0] += 1 + item[0] += 1 - return item[1] - end + return item[1] + end - # Lookups an item - def lookup(*args, &block) - item = super(*args, &block) + # Lookups an item + def lookup(*args, &block) + item = super(*args, &block) - return item[1] - end + return item[1] + end - def transform_item(item) - [0, item] - end + def transform_item(item) + [0, item] + end - def remove(*args) - item = __lookup(*args) - item[0] -= 1 + def remove(*args) + item = __lookup(*args) + item[0] -= 1 - if item[0] == 0 - # Last one using this item has removed it. - super(*args) + if item[0] == 0 + # Last one using this item has removed it. + super(*args) + end end end end