Module: LlmCostTracker::Storage::Registry

Defined in:
lib/llm_cost_tracker/storage/registry.rb

Constant Summary collapse

MUTEX =
Monitor.new

Class Method Summary collapse

Class Method Details

.fetch(name) ⇒ Object



22
23
24
25
26
27
# File 'lib/llm_cost_tracker/storage/registry.rb', line 22

def fetch(name)
  key = normalize_name(name)
  backends.fetch(key) do
    raise Error, "Unknown storage_backend: #{key.inspect}. Use one of: #{names.join(', ')}"
  end
end

.namesObject



33
34
35
# File 'lib/llm_cost_tracker/storage/registry.rb', line 33

def names
  backends.keys
end

.register(name, backend) ⇒ Object



15
16
17
18
19
20
# File 'lib/llm_cost_tracker/storage/registry.rb', line 15

def register(name, backend)
  name = normalize_name(name)
  validate_backend!(backend)
  MUTEX.synchronize { @backends = backends.merge(name => backend).freeze }
  backend
end

.registered?(name) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/llm_cost_tracker/storage/registry.rb', line 29

def registered?(name)
  backends.key?(normalize_name(name))
end