Class: RosettAi::Ui::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/rosett_ai/ui/registry.rb

Overview

Discovers and manages installed UI plugins.

Plugins register themselves via RosettAi::Ui::Registry.register. The registry selects the appropriate adapter at runtime based on user preference or available plugins.

Class Method Summary collapse

Class Method Details

.availableObject



33
34
35
# File 'lib/rosett_ai/ui/registry.rb', line 33

def available
  @adapters.keys
end

.register(name, adapter_class) ⇒ Object



17
18
19
# File 'lib/rosett_ai/ui/registry.rb', line 17

def register(name, adapter_class)
  @adapters[name.to_sym] = adapter_class
end

.registered?(name) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/rosett_ai/ui/registry.rb', line 37

def registered?(name)
  @adapters.key?(name.to_sym)
end

.reset!Object



41
42
43
# File 'lib/rosett_ai/ui/registry.rb', line 41

def reset!
  @adapters = {}
end

.resolve(name = nil) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/rosett_ai/ui/registry.rb', line 21

def resolve(name = nil)
  key = name&.to_sym || default_adapter
  adapter_class = @adapters[key]

  unless adapter_class
    available = @adapters.keys.join(', ')
    raise RosettAi::Error, "Unknown UI adapter '#{key}'. Available: #{available}"
  end

  adapter_class.new
end