Class: Arcp::Session::AgentInventory

Inherits:
Data
  • Object
show all
Includes:
Enumerable
Defined in:
lib/arcp/session/agent_inventory.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#entriesObject (readonly)

Returns the value of attribute entries

Returns:

  • (Object)

    the current value of entries



22
23
24
# File 'lib/arcp/session/agent_inventory.rb', line 22

def entries
  @entries
end

Class Method Details

.from_array(arr) ⇒ Object



25
26
27
# File 'lib/arcp/session/agent_inventory.rb', line 25

def self.from_array(arr)
  new(entries: arr.map { |h| AgentEntry.from_hash(h) }.freeze)
end

Instance Method Details

#default_for(name) ⇒ Object



33
# File 'lib/arcp/session/agent_inventory.rb', line 33

def default_for(name) = find(name)&.default

#eachObject



29
# File 'lib/arcp/session/agent_inventory.rb', line 29

def each(&) = entries.each(&)

#find(name) ⇒ Object



32
# File 'lib/arcp/session/agent_inventory.rb', line 32

def find(name) = entries.find { |e| e.name == name }

#namesObject



35
# File 'lib/arcp/session/agent_inventory.rb', line 35

def names = entries.map(&:name)

#resolve(ref) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/arcp/session/agent_inventory.rb', line 37

def resolve(ref)
  name, version = ref.to_s.split('@', 2)
  entry = find(name)
  return nil unless entry

  version ||= entry.default
  return nil unless version

  return nil unless entry.versions.empty? || entry.versions.include?(version)

  "#{name}@#{version}"
end

#to_aObject



30
# File 'lib/arcp/session/agent_inventory.rb', line 30

def to_a = entries.map(&:to_h)

#versions_for(name) ⇒ Object



34
# File 'lib/arcp/session/agent_inventory.rb', line 34

def versions_for(name) = find(name)&.versions || [].freeze