Sha256: 8df02ac5cb15973b1f7f4c778e3a7129fce9d3d0f36c398c206bcb71c0777450

Contents?: true

Size: 740 Bytes

Versions: 22

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

22 entries across 22 versions & 1 rubygems

Version Path
ufo-6.2.5 lib/ufo/iam_role/registry.rb
ufo-6.2.4 lib/ufo/iam_role/registry.rb
ufo-6.2.3 lib/ufo/iam_role/registry.rb
ufo-6.2.2 lib/ufo/iam_role/registry.rb
ufo-6.2.1 lib/ufo/iam_role/registry.rb
ufo-6.2.0 lib/ufo/iam_role/registry.rb
ufo-6.1.5 lib/ufo/iam_role/registry.rb
ufo-6.1.4 lib/ufo/iam_role/registry.rb
ufo-6.1.3 lib/ufo/iam_role/registry.rb
ufo-6.1.2 lib/ufo/iam_role/registry.rb
ufo-6.1.1 lib/ufo/iam_role/registry.rb
ufo-6.1.0 lib/ufo/iam_role/registry.rb
ufo-6.0.9 lib/ufo/iam_role/registry.rb
ufo-6.0.8 lib/ufo/iam_role/registry.rb
ufo-6.0.7 lib/ufo/iam_role/registry.rb
ufo-6.0.6 lib/ufo/iam_role/registry.rb
ufo-6.0.5 lib/ufo/iam_role/registry.rb
ufo-6.0.4 lib/ufo/iam_role/registry.rb
ufo-6.0.3 lib/ufo/iam_role/registry.rb
ufo-6.0.2 lib/ufo/iam_role/registry.rb