Class: Jets::Resource::Iam::ClassRole

Inherits:
Base
  • Object
show all
Includes:
BaseRoleDefinition
Defined in:
lib/jets/resource/iam/class_role.rb

Instance Method Summary collapse

Methods included from BaseRoleDefinition

#definition, #managed_policy_arns, #policy_document

Methods inherited from Base

#resource

Constructor Details

#initialize(app_class) ⇒ ClassRole

Returns a new instance of ClassRole.



5
6
7
8
9
# File 'lib/jets/resource/iam/class_role.rb', line 5

def initialize(app_class)
  @app_class = app_class.to_s # IE: PostsController, HardJob, Hello, HelloFunction
  @policy_definitions = app_class.class_iam_policy || [] # class_iam_policy contains definitions
  @managed_policy_definitions = app_class.class_managed_iam_policy || [] # class_managed_iam_policy contains definitions
end

Instance Method Details

#replacementsObject



20
21
22
23
24
# File 'lib/jets/resource/iam/class_role.rb', line 20

def replacements
  {
    namespace: @app_class.gsub('::','').camelize, # camelized because can be used as value
  }
end

#role_logical_idObject



11
12
13
# File 'lib/jets/resource/iam/class_role.rb', line 11

def role_logical_id
  "{namespace}_iam_role".underscore
end

#role_nameObject



15
16
17
18
# File 'lib/jets/resource/iam/class_role.rb', line 15

def role_name
  class_namespace = replacements[:namespace].underscore.dasherize
  "#{Jets.config.project_namespace}-#{class_namespace}-role" # camelized because used as template value
end