Class: Arcp::Session::AgentInventory
- Inherits:
-
Data
- Object
- Data
- Arcp::Session::AgentInventory
- Includes:
- Enumerable
- Defined in:
- lib/arcp/session/agent_inventory.rb
Instance Attribute Summary collapse
-
#entries ⇒ Object
readonly
Returns the value of attribute entries.
Class Method Summary collapse
Instance Method Summary collapse
- #default_for(name) ⇒ Object
- #each ⇒ Object
- #find(name) ⇒ Object
- #names ⇒ Object
- #resolve(ref) ⇒ Object
- #to_a ⇒ Object
- #versions_for(name) ⇒ Object
Instance Attribute Details
#entries ⇒ Object (readonly)
Returns the value of attribute 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 |
#each ⇒ Object
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 } |
#names ⇒ Object
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_a ⇒ Object
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 |