Sha256: ad6b9d09dc66212ceece83f9bd332bbd9fb7ba64ef9e480d2f499ecf5be3995d

Contents?: true

Size: 823 Bytes

Versions: 10

Compression:

Stored size: 823 Bytes

Contents

# Implements:
#
#   initialize
#   iam_policy
#   logical_id
#   role_name
#
module Jets::Cfn::TemplateMappers::IamPolicy
  class ClassPolicyMapper < BasePolicyMapper
    def initialize(app_class)
      @app_class = app_class
      # IE: @app_class: PostsController, HardJob, Hello, HelloFunction
    end

    def iam_policy
      Jets::Cfn::TemplateBuilders::IamPolicy::ClassPolicy.new(@app_class)
    end
    memoize :iam_policy

    # Example: PostsControllerLambdaFunction
    # Note there are is no "Show" action in the name
    # There should be no namespace in the logical_id.
    def logical_id
      classify_name("#{@app_class}_iam_role")
    end

    # There should be namespace in the role_name.
    def role_name
      classify_name("#{namespace}_#{@app_class}_iam_role").underscore.dasherize
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
jets-0.6.9 lib/jets/cfn/template_mappers/iam_policy/class_policy_mapper.rb
jets-0.6.8 lib/jets/cfn/template_mappers/iam_policy/class_policy_mapper.rb
jets-0.6.7 lib/jets/cfn/template_mappers/iam_policy/class_policy_mapper.rb
jets-0.6.6 lib/jets/cfn/template_mappers/iam_policy/class_policy_mapper.rb
jets-0.6.5 lib/jets/cfn/template_mappers/iam_policy/class_policy_mapper.rb
jets-0.6.4 lib/jets/cfn/template_mappers/iam_policy/class_policy_mapper.rb
jets-0.6.3 lib/jets/cfn/template_mappers/iam_policy/class_policy_mapper.rb
jets-0.6.2 lib/jets/cfn/template_mappers/iam_policy/class_policy_mapper.rb
jets-0.6.1 lib/jets/cfn/template_mappers/iam_policy/class_policy_mapper.rb
jets-0.6.0 lib/jets/cfn/template_mappers/iam_policy/class_policy_mapper.rb