123456789_123456789_123456789_123456789_123456789_

Class: ActiveRecord::ConnectionAdapters::ConnectionPool::LeaseRegistry::WeakKeyMap

Do not use. This class is for internal use only.

Class Method Summary

Instance Method Summary

Constructor Details

.newWeakKeyMap

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 152

def initialize
  @map = ObjectSpace::WeakMap.new
  @values = nil
  @size = 0
end

Instance Method Details

#[](key)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 160

def [](key)
  prune if @map.size != @size
  @map[key]
end

#[]=(key, value)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 165

def []=(key, value)
  @map[key] = value
  prune if @map.size != @size
  value
end

#clear

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 158

alias_method :clear, :initialize

#delete(key)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 171

def delete(key)
  if value = self[key]
    self[key] = nil
    prune
  end
  value
end

#prune(force = false) (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 180

def prune(force = false)
  @values = @map.values
  @size = @map.size
end