Class: Jets::Cfn::Builder::Api::Paged

Inherits:
Base
  • Object
show all
Defined in:
lib/jets/cfn/builder/api/paged.rb

Direct Known Subclasses

Methods, Resources

Class Method Summary collapse

Instance Method Summary collapse

Methods included from AwsServices

#apigateway, #aws_lambda, #aws_options, #cfn, #dynamodb, #logs, #s3, #s3_resource, #sns, #sqs, #sts

Methods included from AwsServices::StackStatus

#lookup, #stack_exists?, #stack_in_progress?

Methods included from AwsServices::GlobalMemoist

included

Methods included from Interface

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

Methods included from Util::Camelize

#camelize

Constructor Details

#initialize(options = {}) ⇒ Paged

Returns a new instance of Paged.



23
24
25
26
27
28
# File 'lib/jets/cfn/builder/api/paged.rb', line 23

def initialize(options={})
  super
  @page = options[:page]
  @items = @page.items        # interface method: Cors: paths, Resources: paths, Methods: routes
  @page_number = @page.number # interface method
end

Class Method Details

.build_pages(options = {}) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/jets/cfn/builder/api/paged.rb', line 4

def build_pages(options={})
  # IE: Pages::Methods.pages Pages::Resources.pages
  pages_class.pages.each do |page|
    # Key builder here:
    #   Jets::Cfn::Builder::Api::Methods
    #   Jets::Cfn::Builder::Api::Resources
    new(options.merge(page: page)).build
  end
end

.pages_classObject

Examples:

Pages::Methods.new(options)
Pages::Resources.new(options)


17
18
19
20
# File 'lib/jets/cfn/builder/api/paged.rb', line 17

def pages_class
  class_name = self.to_s.gsub(/.*::Api::/, '') # IE: Methods or Resources
  "Jets::Cfn::Builder::Api::Pages::#{class_name}".constantize
end