Spec-Zone.ru › Ruby 3.1

class DRb::WeakIdConv::WeakSet

Родитель:
Object
Включенные модули:
MonitorMixin

Публичные методы класса

new() Показать исходный код
# File lib/drb/weakidconv.rb, line 14
def initialize
  super()
  @immutable = {}
  @map = ObjectSpace::WeakMap.new
end
Вызывает метод суперкласса MonitorMixin::new

Публичные методы экземпляра

add(obj) Показать исходный код
# File lib/drb/weakidconv.rb, line 20
def add(obj)
  synchronize do
    begin
      @map[obj] = self
    rescue ArgumentError
      @immutable[obj.__id__] = obj
    end
    return obj.__id__
  end
end
fetch(ref) Показать исходный код
# File lib/drb/weakidconv.rb, line 31
def fetch(ref)
  synchronize do
    @immutable.fetch(ref) {
      @map.each { |key, _|
        return key if key.__id__ == ref
      }
      raise RangeError.new("invalid reference")
    }
  end
end

Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API