Sha256: 06950cfb9853f7abd3c1ea506397ddbd110b0ef33ebe742a55f2ad601a0bf2cc

Contents?: true

Size: 1.36 KB

Versions: 21

Compression:

Stored size: 1.36 KB

Contents

class Jets::Cfn::TemplateMappers
  class GatewayMethodMapper
    def initialize(route)
      @route = route # {to: "posts#index", path: "posts", method: :get}
    end

    def logical_id
      if @route.homepage?
        "RootPathHomepageGetApiGatewayMethod"
      else
        "#{path_method_id}ApiGatewayMethod"
      end
    end

    def path_method_id
      path = @route.path.gsub(':','_').gsub('/','_').gsub('*','')
      method = @route.method.downcase
      "#{path}_#{method}".camelize
    end

    # Example returns:
    #   ApiGatewayResourcePostsIdEdit or
    #   ApiGatewayResourcePostsId or
    #   ApiGatewayResourcePosts
    def gateway_resource_logical_id
      resource_map.logical_id
    end

    def cors_logical_id
      resource_map.cors_logical_id
    end

    def resource_map
      @resource_map ||= GatewayResourceMapper.new(@route.path)
    end

    def lambda_function_logical_id
      "#{controller_action_logical_id}LambdaFunction"
    end

    def permission_logical_id
      "#{controller_action_logical_id}ApiGatewayPermission"
    end

    # Example: PostsControllerIndex
    def controller_action_logical_id
      controller, action = @route.to.split('#')
      "#{controller}_controller_#{action}".camelize.gsub('::','')
    end

    def controller
      controller, action = @route.to.split('#')
      "#{controller}_controller".camelize
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
jets-0.7.1 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.7.0 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.6.9 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.6.8 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.6.7 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.6.6 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.6.5 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.6.4 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.6.3 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.6.2 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.6.1 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.6.0 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.5.8 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.5.7 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.5.6 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.5.5 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.5.4 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.5.3 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.5.2 lib/jets/cfn/template_mappers/gateway_method_mapper.rb
jets-0.5.1 lib/jets/cfn/template_mappers/gateway_method_mapper.rb