Module: Clacky::Channel::Adapters::ExtensionAdapterLoader

Defined in:
lib/clacky/server/channel/extension_adapter_loader.rb

Overview

Loads channel adapters contributed by ext.yml containers via contributes.channels: [{ id, adapter }]. Reuses UserAdapterLoader.load_one so the require / register / interface check / error isolation contract stays identical.

Constant Summary collapse

Result =
UserAdapterLoader::Result

Class Method Summary collapse

Class Method Details

.last_resultObject



26
27
28
# File 'lib/clacky/server/channel/extension_adapter_loader.rb', line 26

def self.last_result
  @last_result || load_all
end

.load_allObject



15
16
17
18
19
20
21
22
23
24
# File 'lib/clacky/server/channel/extension_adapter_loader.rb', line 15

def self.load_all
  result = Result.new(loaded: [], skipped: [])
  units = Array(Clacky::ExtensionLoader.last_result&.channels)
  units.each do |unit|
    name = "#{unit.ext_id}/#{unit.id}"
    UserAdapterLoader.load_one(unit.spec["adapter_abs"], name, result)
  end
  @last_result = result
  result
end