Sha256: 2d488e88ceb620bcb5d9990d6b67f17ba412c413fe8399f8886cba064f60a794

Contents?: true

Size: 740 Bytes

Versions: 14

Compression:

Stored size: 740 Bytes

Contents

require "set"

module Ufo::IamRole
  class Registry
    class_attribute :policies
    self.policies = {}
    class_attribute :managed_policies
    self.managed_policies = {}

    class << self
      def register_policy(role_type, policy_name, *statements)
        statements.flatten!
        self.policies[role_type] ||= Set.new
        self.policies[role_type].add([policy_name, statements]) # using set so Dsl can safely be evaluated multiple times
      end

      def register_managed_policy(role_type, *policies)
        policies.flatten!
        self.managed_policies[role_type] ||= Set.new
        self.managed_policies[role_type].merge(policies) # using set so Dsl can safely be evaluated multiple times
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
ufo-6.3.13 lib/ufo/iam_role/registry.rb
ufo-6.3.12 lib/ufo/iam_role/registry.rb
ufo-6.3.11 lib/ufo/iam_role/registry.rb
ufo-6.3.10 lib/ufo/iam_role/registry.rb
ufo-6.3.9 lib/ufo/iam_role/registry.rb
ufo-6.3.8 lib/ufo/iam_role/registry.rb
ufo-6.3.7 lib/ufo/iam_role/registry.rb
ufo-6.3.6 lib/ufo/iam_role/registry.rb
ufo-6.3.5 lib/ufo/iam_role/registry.rb
ufo-6.3.4 lib/ufo/iam_role/registry.rb
ufo-6.3.3 lib/ufo/iam_role/registry.rb
ufo-6.3.2 lib/ufo/iam_role/registry.rb
ufo-6.3.1 lib/ufo/iam_role/registry.rb
ufo-6.3.0 lib/ufo/iam_role/registry.rb