Sha256: cd097f36df8ea9d45e81a92c95369a7cc644c4f71f7253c5a958b2db1759cbea

Contents?: true

Size: 829 Bytes

Versions: 10

Compression:

Stored size: 829 Bytes

Contents

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

    def iam_policy
      Jets::Cfn::TemplateBuilders::IamPolicy::FunctionPolicy.new(@task)
    end
    memoize :iam_policy

    # Example: PostsControllerShowLambdaFunction
    # There should be no namespace in the logical_id.
    def logical_id
      classify_name("#{@app_class}_#{@task.meth}_iam_role")
    end

    # There should be namespace in the role_name.
    def role_name
      classify_name("#{namespace}_#{@app_class}_#{@task.meth}_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/function_policy_mapper.rb
jets-0.6.8 lib/jets/cfn/template_mappers/iam_policy/function_policy_mapper.rb
jets-0.6.7 lib/jets/cfn/template_mappers/iam_policy/function_policy_mapper.rb
jets-0.6.6 lib/jets/cfn/template_mappers/iam_policy/function_policy_mapper.rb
jets-0.6.5 lib/jets/cfn/template_mappers/iam_policy/function_policy_mapper.rb
jets-0.6.4 lib/jets/cfn/template_mappers/iam_policy/function_policy_mapper.rb
jets-0.6.3 lib/jets/cfn/template_mappers/iam_policy/function_policy_mapper.rb
jets-0.6.2 lib/jets/cfn/template_mappers/iam_policy/function_policy_mapper.rb
jets-0.6.1 lib/jets/cfn/template_mappers/iam_policy/function_policy_mapper.rb
jets-0.6.0 lib/jets/cfn/template_mappers/iam_policy/function_policy_mapper.rb