Sha256: e239ac1b5e88960fc9243a29d42548c6bef951c3a5d8b3bff5c3a2fd2c8ed183

Contents?: true

Size: 1.15 KB

Versions: 60

Compression:

Stored size: 1.15 KB

Contents

module Jets::Cfn::Builders
  class ApiResourcesBuilder
    include Interface
    include Jets::AwsServices

    def initialize(options={}, paths=[], page)
      @options, @paths, @page = options, paths, page
      @template = ActiveSupport::HashWithIndifferentAccess.new(Resources: {})
    end

    # compose is an interface method
    def compose
      add_rest_api_parameter
      add_gateway_routes
    end

    # template_path is an interface method
    def template_path
      Jets::Naming.api_resources_template_path(@page)
    end

    def add_rest_api_parameter
      add_parameter("RestApi", Description: "RestApi")
    end

    def add_gateway_routes
      @paths.each do |path|
        homepage = path == ''
        next if homepage # handled by RootResourceId output already

        resource = Jets::Resource::ApiGateway::Resource.new(path)
        add_resource(resource)
        add_outputs(resource.outputs)

        parent_path = resource.parent_path_parameter
        add_parameter(parent_path) unless part_of_template?(parent_path)
      end
    end

    def part_of_template?(parent_path)
      @template["Resources"].key?(parent_path)
    end
  end
end

Version data entries

60 entries across 60 versions & 2 rubygems

Version Path
jets-3.2.2 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.2.1 lib/jets/cfn/builders/api_resources_builder.rb
jets.benforeva-3.0.17.pre.mount.pre.fix lib/jets/cfn/builders/api_resources_builder.rb
jets-3.2.0 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.1.5 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.1.4 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.1.3 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.1.2 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.1.1 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.1.0 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.0.23 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.0.22 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.0.21 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.0.20 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.0.19 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.0.18 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.0.17 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.0.16 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.0.15 lib/jets/cfn/builders/api_resources_builder.rb
jets-3.0.14 lib/jets/cfn/builders/api_resources_builder.rb