Class: Kettle::Family::Discovery

Inherits:
Object
  • Object
show all
Defined in:
lib/kettle/family/discovery.rb

Instance Method Summary collapse

Constructor Details

#initialize(config:) ⇒ Discovery

Returns a new instance of Discovery.



8
9
10
# File 'lib/kettle/family/discovery.rb', line 8

def initialize(config:)
  @config = config
end

Instance Method Details

#membersObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/kettle/family/discovery.rb', line 12

def members
  discovered = config.discover_members? ? discover_members : []
  explicit = explicit_members
  by_name = {}

  (discovered + explicit).each do |member|
    existing = by_name[member.name]
    raise Error, "duplicate family member #{member.name.inspect}" if existing && existing.root != member.root

    by_name[member.name] = member
  end

  by_name.values.sort_by(&:name)
end