class Bcome::Node::Inventory::Merge

Attributes

dynamic_nodes_loaded[R]

Public Class Methods

new(*params) click to toggle source
Calls superclass method Bcome::Node::Inventory::Base::new
# File lib/objects/node/inventory/merge.rb, line 9
def initialize(*params)
  super
  raise Bcome::Exception::MissingInventoryContributors, @views unless @views[:contributors]
end

Public Instance Methods

contributing_inventories() click to toggle source
# File lib/objects/node/inventory/merge.rb, line 26
def contributing_inventories
  @inventories ||= @views[:contributors].collect { |inventory_key| load_inventory(inventory_key) }
end
do_set_resources() click to toggle source
# File lib/objects/node/inventory/merge.rb, line 38
def do_set_resources
  ::Bcome::Node::Resources::Merged.new(inventory: self)
end
load_inventory(from_crumb) click to toggle source
# File lib/objects/node/inventory/merge.rb, line 42
def load_inventory(from_crumb)
  inventory = ::Bcome::Node::Factory.instance.bucket[from_crumb]
  raise Bcome::Exception::CannotFindInventory, "for key '#{from_crumb}'" unless inventory

  inventory
end
load_nodes() click to toggle source
# File lib/objects/node/inventory/merge.rb, line 18
def load_nodes
  contributing_inventories.each do |inventory|
    inventory.load_nodes unless inventory.nodes_loaded?
  end

  resources
end
nodes_loaded?() click to toggle source
# File lib/objects/node/inventory/merge.rb, line 14
def nodes_loaded?
  !contributing_inventories.collect(&:nodes_loaded?).include?(false)
end
resources() click to toggle source
# File lib/objects/node/inventory/merge.rb, line 30
def resources
  @resources ||= do_set_resources
end
update_nodes() click to toggle source
# File lib/objects/node/inventory/merge.rb, line 34
def update_nodes
  resources.update_nodes(self)
end