module ObjectCache

Public Instance Methods

clear() click to toggle source
# File lib/gosling/object_cache.rb, line 14
def clear
  @cache.clear
end
get() click to toggle source
# File lib/gosling/object_cache.rb, line 25
def get
  if @cache.empty?
    self.create
  else
    obj = @cache.delete(@cache.keys.first)
    obj.unfreeze
    obj
  end
end
recycle(obj) click to toggle source
# File lib/gosling/object_cache.rb, line 18
def recycle(obj)
  return if @cache.key?(obj.object_id)
  self.reset(obj)
  obj.freeze
  @cache[obj.object_id] = obj
end
size() click to toggle source
# File lib/gosling/object_cache.rb, line 35
def size
  @cache.size
end

Protected Instance Methods

create() click to toggle source
# File lib/gosling/object_cache.rb, line 41
def create
  raise "Derived classes must implement create()."
end
reset(obj) click to toggle source
# File lib/gosling/object_cache.rb, line 45
def reset(obj)
  raise "Derived classes must implement reset()."
end