Class: RedSnow::ResourceGroup

Inherits:
NamedBlueprintNode show all
Defined in:
lib/redsnow/blueprint.rb

Overview

Resource group Blueprint AST node

represents 'resource group section'

Instance Attribute Summary collapse

Attributes inherited from NamedBlueprintNode

#description, #name

Instance Method Summary collapse

Methods inherited from NamedBlueprintNode

#ensure_description_newlines

Constructor Details

#initialize(sc_resource_group_handle) ⇒ ResourceGroup

Returns a new instance of ResourceGroup.

Parameters:

  • sc_resource_group_handle (FFI::Pointer)


371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
# File 'lib/redsnow/blueprint.rb', line 371

def initialize(sc_resource_group_handle)
  @name = RedSnow::Binding.sc_resource_group_name(sc_resource_group_handle)
  @description = RedSnow::Binding.sc_resource_group_description(sc_resource_group_handle)

  @resources = []
  sc_resource_collection_handle = RedSnow::Binding.sc_resource_collection_handle(sc_resource_group_handle)
  sc_resource_collection_size = RedSnow::Binding.sc_resource_collection_size(sc_resource_collection_handle)

  return if sc_resource_collection_size == 0

  resource_size = sc_resource_collection_size - 1

  (0..resource_size).each do |index|
    sc_resource_handle = RedSnow::Binding.sc_resource_handle(sc_resource_collection_handle, index)
    @resources << Resource.new(sc_resource_handle).tap do |resource|
      resource_group_instance = self
      resource.define_singleton_method(:resource_group) { resource_group_instance }
    end
  end
end

Instance Attribute Details

#resourcesArray<Resource>

array of resources in the group

Returns:

  • (Array<Resource>)

    the current value of resources



367
368
369
# File 'lib/redsnow/blueprint.rb', line 367

def resources
  @resources
end