Module: TreeHaver::BackendRegistry

Defined in:
lib/tree_haver/backend_registry.rb

Class Method Summary collapse

Class Method Details

.allObject



19
20
21
22
23
# File 'lib/tree_haver/backend_registry.rb', line 19

def all
  mutex.synchronize do
    backends.values.map { |backend| BackendReference.new(**deep_dup(backend)) }
  end
end

.clear!Object



25
26
27
# File 'lib/tree_haver/backend_registry.rb', line 25

def clear!
  mutex.synchronize { backends.clear }
end

.fetch(id) ⇒ Object



14
15
16
17
# File 'lib/tree_haver/backend_registry.rb', line 14

def fetch(id)
  data = mutex.synchronize { backends[id] }
  data && BackendReference.new(**deep_dup(data))
end

.register(backend) ⇒ Object



7
8
9
10
11
12
# File 'lib/tree_haver/backend_registry.rb', line 7

def register(backend)
  mutex.synchronize do
    backends[backend.id] = deep_dup(backend.to_h)
  end
  nil
end