Sha256: 67798474afbaaf9d3e846a6b0228142e70dd9eadf8d0a09312a96933e6017709

Contents?: true

Size: 711 Bytes

Versions: 2

Compression:

Stored size: 711 Bytes

Contents

module Cloudflared
  class Collection
    include Enumerable

    MAX_PER_PAGE = 100

    attr_reader :data, :success, :errors, :page, :per_page

    def self.from_response(response, key:, type:)
      body = response.body["result"]
      new(
        data: body[key].map { |attrs| type.new(attrs) },
        success: body["success"],
        errors: body["errors"],
        messages: body["messages"]
      )
    end

    def initialize(data:, success:, errors:, messages:, page: 1, per_page: 50)
      @data = data
      @success = success
      @errors = errors
      @messages = messages
      @page = page
      @per_page = per_page
    end

    def each(&block)
      @data.each(&block)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cloudflared-0.1.1 lib/cloudflared/collection.rb
cloudflared-0.1.0 lib/cloudflared/collection.rb