Class: Jets::Cfn::Builder::OneController

Inherits:
Nested
  • Object
show all
Defined in:
lib/jets/cfn/builder/one_controller.rb

Instance Method Summary collapse

Methods inherited from Nested

#add_class_iam_policy, #add_common_parameters, #add_function, #add_function_iam_policy, #add_functions, #build_class_iam_policy?, #depends_on_params, #initialize, #one_lambda_per_controller, #one_lambda_per_method, #scoped_routes, #validate_function_names!

Methods included from Interface

#add_description, #add_output, #add_parameter, #add_parameters, #add_resource, #add_resources, #add_template_resource, #build, #template, #text, #write

Methods included from Util::Camelize

#camelize

Constructor Details

This class inherits a constructor from Jets::Cfn::Builder::Nested

Instance Method Details

#add_api_gateway_parametersObject



48
49
50
51
# File 'lib/jets/cfn/builder/one_controller.rb', line 48

def add_api_gateway_parameters
  return if Jets::Router.no_routes?
  add_parameter(:RestApi)
end

#add_application_controller_iam_policyObject



30
31
32
33
34
35
# File 'lib/jets/cfn/builder/one_controller.rb', line 30

def add_application_controller_iam_policy
  klass = ApplicationController
  return unless klass.build_class_iam?
  resource = Jets::Cfn::Resource::Iam::ClassRole.new(klass)
  add_resource(resource)
end

#add_one_functionObject



20
21
22
23
24
25
26
27
28
# File 'lib/jets/cfn/builder/one_controller.rb', line 20

def add_one_function
  resource = Jets::Cfn::Resource::One::Function.new
  add_resource(resource)
  add_application_controller_iam_policy
  unless Jets::Router.no_routes?
    permission = Jets::Cfn::Resource::One::Permission.new
    add_resource(permission)
  end
end

#add_outputsObject



37
38
39
40
41
42
43
44
45
46
# File 'lib/jets/cfn/builder/one_controller.rb', line 37

def add_outputs
  outputs = {}
  @template[:Resources].each do |logical_id, resource|
    next unless resource[:Type] == "AWS::Lambda::Function"
    outputs.merge!(logical_id => {
      Value: "!GetAtt #{logical_id}.Arn"
    })
  end
  @template[:Outputs] = outputs
end

#build?Boolean

Returns:

  • (Boolean)


3
4
5
# File 'lib/jets/cfn/builder/one_controller.rb', line 3

def build?
  true
end

#composeObject

interface method



8
9
10
11
12
13
# File 'lib/jets/cfn/builder/one_controller.rb', line 8

def compose
  add_one_function
  add_common_parameters
  add_api_gateway_parameters
  add_outputs
end

#template_pathObject

interface method



16
17
18
# File 'lib/jets/cfn/builder/one_controller.rb', line 16

def template_path
  Jets::Names.one_controller_template_path
end