Sha256: 4365256433746d0eede22be42fa63c806ff8e3bdd2a4d2820c31d7786971c4f6

Contents?: true

Size: 920 Bytes

Versions: 14

Compression:

Stored size: 920 Bytes

Contents

module Ufo::Cfn::Stack::Builder::Resources::IamRoles
  class Base < Ufo::Cfn::Stack::Builder::Base
    def build
      return unless self.class.build? # important because it runs Dsl#evaluate
      Ufo::IamRole::Builder.new(self.class.role_type).build
    end

    class << self
      def role_type
        self.name.to_s.split("::").last.underscore
      end

      def build?
        path = lookup_path
        return unless path.nil? || File.exist?(path)
        Ufo::IamRole::Dsl.new(path).evaluate # runs the role.rb and registers items
        Ufo::IamRole::Builder.new(role_type).build?
      end

      def lookup_path
        iam_roles = "#{Ufo.root}/.ufo/resources/iam_roles"
        paths = ["#{Ufo.app}/#{role_type}", "#{role_type}"]
        paths.map! do |path|
          "#{iam_roles}/#{path}.rb"
        end
        paths.find do |path|
          File.exist?(path)
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
ufo-6.3.13 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb
ufo-6.3.12 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb
ufo-6.3.11 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb
ufo-6.3.10 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb
ufo-6.3.9 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb
ufo-6.3.8 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb
ufo-6.3.7 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb
ufo-6.3.6 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb
ufo-6.3.5 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb
ufo-6.3.4 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb
ufo-6.3.3 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb
ufo-6.3.2 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb
ufo-6.3.1 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb
ufo-6.3.0 lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb