class Bcome::Node::Resources::Base

Attributes

nodes[R]

Public Class Methods

new(*_params) click to toggle source
# File lib/objects/node/resources/base.rb, line 9
def initialize(*_params)
  @nodes = []
  @disabled_resources = []
end

Public Instance Methods

<<(node) click to toggle source
# File lib/objects/node/resources/base.rb, line 18
def <<(node)
  existing_node = for_identifier(node.identifier)
  if existing_node
    exception_message = "#{node.identifier} is not unique within namespace #{node.parent.namespace}"
    raise Bcome::Exception::NodeIdentifiersMustBeUnique, exception_message
  end
  @nodes << node
end
active() click to toggle source
# File lib/objects/node/resources/base.rb, line 77
def active
  @nodes - @disabled_resources
end
clear!() click to toggle source
# File lib/objects/node/resources/base.rb, line 31
def clear!
  @disabled_resources = []
end
Also aliased as: enable!
disable(identifier) click to toggle source
# File lib/objects/node/resources/base.rb, line 58
def disable(identifier)
  resource = for_identifier(identifier)
  raise Bcome::Exception::NoNodeNamedByIdentifier, identifier unless resource

  @disabled_resources << resource unless @disabled_resources.include?(resource)
end
disable!() click to toggle source
# File lib/objects/node/resources/base.rb, line 54
def disable!
  @disabled_resources = @nodes
end
do_disable(identifier) click to toggle source
# File lib/objects/node/resources/base.rb, line 36
def do_disable(identifier)
  if identifier.is_a?(Array)
    identifier.each { |id| disable(id) }
  else
    disable(identifier)
  end
  nil
end
do_enable(identifier) click to toggle source
# File lib/objects/node/resources/base.rb, line 45
def do_enable(identifier)
  if identifier.is_a?(Array)
    identifier.each { |id| enable(id) }
  else
    enable(identifier)
  end
  nil
end
each() { |node| ... } click to toggle source
# File lib/objects/node/resources/base.rb, line 14
def each
  @nodes.each { |node| yield(node) }
end
empty?() click to toggle source
# File lib/objects/node/resources/base.rb, line 90
def empty?
  @nodes.empty?
end
enable(identifier) click to toggle source
# File lib/objects/node/resources/base.rb, line 65
def enable(identifier)
  resource = for_identifier(identifier)
  raise Bcome::Exception::NoNodeNamedByIdentifier, identifier unless resource

  @disabled_resources -= [resource]
end
enable!()
Alias for: clear!
first() click to toggle source
# File lib/objects/node/resources/base.rb, line 102
def first
  @nodes.first
end
for_identifier(identifier) click to toggle source
# File lib/objects/node/resources/base.rb, line 85
def for_identifier(identifier)
  resource = @nodes.select { |node| node.identifier == identifier }.last
  resource
end
has_active_nodes?() click to toggle source
# File lib/objects/node/resources/base.rb, line 94
def has_active_nodes?
  active.any?
end
is_active_resource?(resource) click to toggle source
# File lib/objects/node/resources/base.rb, line 81
def is_active_resource?(resource)
  active.include?(resource)
end
should_rename_initial_duplicate?() click to toggle source
# File lib/objects/node/resources/base.rb, line 27
def should_rename_initial_duplicate?
  false
end
size() click to toggle source
# File lib/objects/node/resources/base.rb, line 98
def size
  @nodes.size
end