Sha256: 41f0a4c14a8d84ab2e142047070c319f66db278b8428303bb9c839bf9d3962ba

Contents?: true

Size: 928 Bytes

Versions: 15

Compression:

Stored size: 928 Bytes

Contents

module Jets::Cfn::Builder::Api
  class Paged < Base
    class << self
      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

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

    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
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
jets-5.0.13 lib/jets/cfn/builder/api/paged.rb
jets-5.0.12 lib/jets/cfn/builder/api/paged.rb
jets-5.0.11 lib/jets/cfn/builder/api/paged.rb
jets-5.0.10 lib/jets/cfn/builder/api/paged.rb
jets-5.0.9 lib/jets/cfn/builder/api/paged.rb
jets-5.0.8 lib/jets/cfn/builder/api/paged.rb
jets-5.0.7 lib/jets/cfn/builder/api/paged.rb
jets-5.0.6 lib/jets/cfn/builder/api/paged.rb
jets-5.0.5 lib/jets/cfn/builder/api/paged.rb
jets-5.0.4 lib/jets/cfn/builder/api/paged.rb
jets-5.0.3 lib/jets/cfn/builder/api/paged.rb
jets-5.0.2 lib/jets/cfn/builder/api/paged.rb
jets-5.0.1 lib/jets/cfn/builder/api/paged.rb
jets-5.0.0 lib/jets/cfn/builder/api/paged.rb
jets-5.0.0.beta1 lib/jets/cfn/builder/api/paged.rb