1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# frozen_string_literal: true
require_relative '../helpers/hash'
require_relative 'default'
module NanoBot
module Logic
module Cartridge
module Adapter
def self.expression(cartridge, interface, direction, language)
adapter = [
{
exists: (Helpers::Hash.fetch(cartridge, [:interfaces, direction, :adapter]) || {}).key?(language),
value: Helpers::Hash.fetch(cartridge, [:interfaces, direction, :adapter, language])
},
{
exists: (Helpers::Hash.fetch(cartridge,
[:interfaces, interface, direction, :adapter]) || {}).key?(language),
value: Helpers::Hash.fetch(cartridge, [:interfaces, interface, direction, :adapter, language])
}
].filter { |candidate| candidate[:exists] }.last
return nil if adapter.nil?
adapter[:value]
end
end
end
end
end
|