class Powerplay::DSL::DslGroup

Attributes

exec[R]

The entries here may either be books or groups.

parent[R]

The entries here may either be books or groups.

Public Class Methods

new(type, desc, plan, parent=nil, &block) click to toggle source
Calls superclass method Powerplay::DSL::Dsl::new
# File lib/ansible-powerplay/dsl.rb, line 174
def initialize(type, desc, plan, parent=nil, &block)
  super(type, desc, &block)
  @exec = plan
  @parent = parent
  _bump
  instance_eval( &block ) 
  @config = _dip
end

Public Instance Methods

book(type, yaml, desc = nil, plan: @exec, &block) click to toggle source
# File lib/ansible-powerplay/dsl.rb, line 166
def book(type, yaml, desc = nil, plan: @exec, &block)
  raise ":noop is a reserved book type and cannot be used." if type == :noop
  _enqueue DslBook.new(type, yaml,
                       desc: desc,
                       plan: plan,
                       group: self, &block)
end
family() click to toggle source

return a list including ourselves and our parents

# File lib/ansible-powerplay/dsl.rb, line 184
def family
  fam = []
  g = self
  while g
    fam << g.type
    g = g.parent
  end
  fam
end
group(name, desc = nil, plan = :async, seq: nil, &block) click to toggle source
# File lib/ansible-powerplay/dsl.rb, line 145
def group name, desc = nil, plan = :async, seq: nil, &block
  if seq.nil?
    DslGroup.new(name, desc, plan, self, &block)
    _enqueue DslBook.new(:noop, nil, plan: @exec) unless @exec == :async or _sneak.type == :sync
  else
    seq.each do |var, list|
      unless list.is_a? Array
        config[:vars][list].first
      else
        list
      end.each do |value|
        _bump
        _config[var] = [value]
        DslGroup.new(name, desc, plan, self, &block)
        _enqueue DslBook.new(:noop, nil, plan: @exec) unless @exec == :async or _sneak.type == :sync
        _dip
      end
    end
  end
end