class Subiam::DSL::Context::Group

Attributes

result[R]

Public Class Methods

new(context, name, &block) click to toggle source
# File lib/subiam/dsl/context/group.rb, line 5
def initialize(context, name, &block)
  @group_name = name
  @context = context.merge(:group_name => name)
  @result = {:policies => {}, :attached_managed_policies => []}
  instance_eval(&block)
end

Private Instance Methods

attached_managed_policies(*policies) click to toggle source
# File lib/subiam/dsl/context/group.rb, line 32
def attached_managed_policies(*policies)
  @result[:attached_managed_policies].concat(policies.map(&:to_s))
end
policy(name) { || ... } click to toggle source
# File lib/subiam/dsl/context/group.rb, line 16
def policy(name)
  name = name.to_s

  if @result[:policies][name]
    raise "Group `#{@group_name}` > Policy `#{name}`: already defined"
  end

  policy_document = yield

  unless policy_document.kind_of?(Hash)
    raise "Group `#{@group_name}` > Policy `#{name}`: wrong argument type #{policy_document.class} (expected Hash)"
  end

  @result[:policies][name] = policy_document.keys_to_s_recursive
end